Pereiti prie turinio

C++ Kaip parašyti sąlygą, kad veiksmo atsakymas turi būti sveikas skaičius?


Rekomenduojami pranešimai

4. Degtukai. Yra n degtukų. Parašykite programą, kuri nustatytų, ar iš tų degtukų galima sudėti bent vieną iš šių figūrų: lygiakraštį trikampį, kvadratą ar stačiakampį. Dėliojamai figūrai turi būti panaudoti visi degtukai; be to, degtukų laužyti negalima.

Kaip ir nesunku, manau, kad gautus lygiakraštis trikampis turi dalintis iš 3, stačiakampis : iš 4, ir kvadratas turėtų manau šaknis trauktis, tik kaip parašyti pačią sąlygą, kad veiksmo rezultatas turi būti sveikas skaičius?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

float a = 4.00;
if (a == (int) a) {
//    kintamasis yra sveikas...
}

Esmė paprasta - castinant float į int tai, kas po kablelio, nukerpama (t.y. net 4.99 bus paversta į tiesiog 4). Tada lyginam tą paverstą su originaliu float'u. 4.00 == 4 šiuo atveju :)

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Štai

 

//keturkampiui
if(skaicius % 4 == 0)
{
//is degtuku galima sudelioti keturkampi 
} else {}

 

su % gauni liekaną, ir jeigu liekana nulis - vadinasi viskas gerai :)

 

(EDIT: čia kitoks sprendimo būdas, jei ką)

Redagavo Lapinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš taip pat buvau galvojęs apie %, bet ar tikrai tiks šakniai ištraukti? Be int(a) galima naudoti spec. math funkcijas modf arba floor

 

Šaknis ne prie ko, nes tarkim ir iš 9 gali gražiai ištraukti. Skaičius turi būti skaičiaus 4 kartotinis, kad būtų galima sudėlioti kvadratą, tarkim 4, 8, 12, 16... :) na, o kad eitų sudėlioti stačiakampį, manau reikia daugiau nei 4 degtukų ir kad skaičius būtų lyginis. Tokie va rytiniai greiti mano pamąstymai, bet galiu ir apsirikti, reikėtų patikrinti :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nenoriu kurti naujos temos tai čia parašysiu: Kaip patikrinti ar skaičius (1 - 60) Baigiasi tam tikru skaičiu? Iš uždavinio:

1, 2, 11, 12, 21, 22, …, 51, 52 metai – žalia spalva;

3, 4, 13, 14, 23, 24, …, 53, 54 metai – raudona spalva;

5, 6, 15, 16, 25, 26, …, 55, 56 metai – geltona spalva;

7, 8, 17, 18, 27, 28, …, 57, 58 metai – balta spalva;

9, 10, 19, 20, 29, 30, …, 59, 60 metai – juoda spalva.

Galvojau irgi %, bet, norint surast skaičių kuris dalijasi iš 1, tiks visi skaičiai, o kuris iš 2, tiks ir kurie baigias 4 ir 6..

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Vėlgi nenorėdamas kurti naujos temos čia rašau:

Architektas suprojektavo salę kurioje bus n eilių, Pirmoje eilėje bus k kėdžių, o kiekvienoje kitoje 2 kėdėmis daugiau, negu prieš tai buvusioje, Parašykite programą kuri apskaičiuotų kiek iš viso s kėdžių reikia užsakyti. Kai n = 3, k = 8, turi buti spausdinama s = 30 kedziu.

Štai ką nuveikiau:

// Pavadinimas
#include <iostream>
using namespace std;
int main ()
{
  int k, n, i;
  cout << "Kiek eiliu bei kedziu pirmoje eileje bus? "; cin >> n >> k;
  for (i = k; i <= (k + n); i++) {
  i = i + (i + 2);
  }
  cout << "Reiks " << i << " kedziu" << endl;
  return 0;
}

Kažkur yra kažkokia klaidelė :/

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...