Baxtli chipta yohud Avtobusda ham matematika!
Ko`pincha avtobusga chiqqanimda qo`limga konduktor chipta berib ketadi…Shu chiptani olayotgan paytimda sekin raqamlariga qarayman, agar baxtli chiqib qolsa bormi xursand bo`lib o`zimga o`zim kuch bag`ishlayman.
Shunday qilib men sizlarga 8 xonalik sonlar ichida shu omadli chipta necha kishini xursand qilar ekan deb ularni C/C++ tilida sanab chiqdim…
Dasturlashni endi o`rganayotganlarning aksariyatini aytmaganda ko`pchiligi acm.timus.ru saytiga kirmaganlari bo`lmasa kerak. Men «OPPENNET»da ushbu saytdagi yohud avtobusdagi meni xursand qiladigan chiptalar uchun o`ylab topilgan masalani ishlab ko`rsatmoqchiman.
Avvalo o`zgaruvchilarni e`lon qilib olamiz.
int n,RemNumber,LTicket=0;
int t=0,count;
n => » Necha xonalik sonlar»
n=2 bo`lsa, demak 99, n=3 bo`lsa, demak 999 va hakozo…
So`ngra chipta omadli yoki omadsiz ekanligini tekshirish uchun bizning chipta juft xonali bo`lishi kerak bo`ladi.
shu sababdan juft xonali ekanligini tekshiramiz:
if(n%2==0) {
switch(n)
{
case 2:
count = 99;
break;
case 4:
count = 9999;
break;
case 6:
count = 999999;
break;
case 8:
count = 99999999;
break;
default:
cout
Keyingi qadamda biz siklda o`zlashtirilgan har bir sonni bir o`zgaruvchiga tenglab uni raqamlarini massivga yig`ib boramiz va massivning har bir indeks ostidagi raqamlardan foydalanib chipta sonini ikki bo`lakka ajratib olamiz hamda bo`laklardagi raqamlarni qo`shib ularni teng yoki teng emasligini tekshiramiz.Agar teng bo`lsa demak chiptamiz omadli 🙂 va shu omadli chiptani sanab boramiz…
for( int i = 0; i >> 2
RemNumber=RemNumber/10; // butun qismni o`zlashtiradi >>> 23690
}
while(RemNumber>0);
if(n==2 && a[1] ==a[2]) LTicket++;
if(n==4 && a[1] + a[2] ==a[3] + a[4])LTicket++;
if(n==6 && a[1] + a[2] + a[3] ==a[4] + a[5] + a[6]) LTicket++;
if(n==8 && a[1] + a[2] + a[3] + a[4] ==a[5] + a[6] + a[7] + a[8]) LTicket++;
}
Dastur to`liq kodi:
#include
#include
long int a[99999999];
using namespace std;
int main()
{
int n,RemNumber,LTicket=0;
int t=0,count;
cin>>n;
if(n%2==0) {
switch(n)
{
case 2:
count = 99;
break;
case 4:
count = 9999;
break;
case 6:
count = 999999;
break;
case 8:
count = 99999999;
break;
default:
cout>> 2
RemNumber=RemNumber/10; // butun qismni o`zlashtiradi >>> 23690
}
while(RemNumber>0);
if(n==2 && a[1] ==a[2]) LTicket++;
if(n==4 && a[1] + a[2] ==a[3] + a[4])LTicket++;
if(n==6 && a[1] + a[2] + a[3] ==a[4] + a[5] + a[6]) LTicket++;
if(n==8 && a[1] + a[2] + a[3] + a[4] ==a[5] + a[6] + a[7] + a[8]) LTicket++;
}
cout
Maqolam so`ngida shuni aytmoqchi edimki ushbu masalani har xil usulda ishlash mumkin, men esa boshlovchi dasturchilarga yordam bo`lsin deb batafsilroq yozishga harakat qildim)))
Texnologiyalar
Baxtli chipta yohud Avtobusda ham matematika!