************************************************************************
Keliamieji metai
Keliamieji metai turi 366 dienas, paprastieji - 365. Keliamaisiais vadinami tie metai, kurie be liekanos dalijasi iš 4. Šimtmečių metais laikomi tie, kurie be liekanos dalijasi iš 400.
Parašykite programą, kuri parodytų ekrane, kurie laikotarpio nuo m iki n -tųjų metai yra keliamieji.
Pasitikrinkite,
kai m=1999, n=2010,
keliamieji metai yra 2000, 2004, 2008.
************************************************************************
#include <iostream>
using namespace std;
int m; //metai pirmi
int n; //metai paskutiniai
int i;
int main()
{
cout << "KELIAMIEJI METAI" << endl;
cout << "Kokia bus laikotarpio pradzia? ";
cin >> m;
cout << "Pabaiga ";
cin >> n;
for (i = m; i <= n; i++)
{
if (i % 4 == 0 ) //dalijasi iš 4 be leikanos
if (i % 100 != 0) //ir nėra šimtmečių metai
cout << " keliamieji metai " << i << endl;
//yra šimtmečių metai
else if (i % 400==0) //ar dalijasi iš 400 be liekanos
cout << " keliamieji šimtmečių metai " << i << endl;
}
return 0;
}
************************************************************************
Kvadratai
Iš n kvadratinių pklytelių reikia sudėlioti vienos plytelės storio kvadratus: pirmiausia sudėti didžiausią galimą kvadratą, iš likusių vėl galimą didžiausią ir t.t.
Parašykite programą, kuri išskaidytų nurodytą plytelių skaičių į dalis, reikalingas kiekvieno kvadrato statybai.
Pasitikrinkite: kai n=75, turėtumėte gauti 64, 9, 1, 1.
(XI olimpiada, 2000 m)
************************************************************************
#include <iosstrem>
#include <cmath>
using namespace std;
int main()
{
int n; // kvadratinių plytelių skaičius
int i,
kv, //kvadratas, kurį galėsime sudaryti
p; //pradėsime nuo dižiausio kvadrato
cout << "Kiek yra plytelių? "; cin >> n;
p=sqrt(n);
for (i=p; i > 0; i--)
{
kv =i * i;
if (kv <= n){
cout << "kvadratas=" << kv << endl;
n = n - kv;
}
}
if (n > 0) //jei dar yra likusių plytelių, turėsime kvadratus iš vienos plytelės
for (i = 1; i <= n; i++)
cout << "kvardatas=" << 1 << endl;
return 0;
}
************************************************************************
Didžiausias sekoje
Duota sveikųjų skaičių seka, kurioje yra n narių. Rasti didžiausia skaičių
Pasitikrinkite: kai n=5, duota seka 7, 11, 2, 8, 30. Atsakymas - "Didžiausias skaičius=11"
************************************************************************
#include <iostream>
using namespace std;
int main(){
int m, //sekos narys
n, //kiek yra sekoje skaičių
i,
max; //didžiausias
cout << "kiek yra skaičių sekoje "; cin >> n;
i=1;
cout << " Įveskite " << i << " skaičių: "; cin >> m;
max=m;
for (i = 2; i <= n; i++)
{
cout << " Įveskite " << i << " skaičių: "; cin >> m;
if (m > max)
{ max = m; }
}
cout << endl << "Didžiausias sekoje skaičius " << max;
return 0;
}