18. Shunday to‘rt xonali sonlarni topingki, ularni 400 soning o‘ng tomoniga yozganda to‘la kvadrat hosil bo‘lsin.
19-misol. 2, 3, 4, 5, 6 sonlariga bo‘lganda mos ravishda 1, 2, 3, 4, 5 qoldiqlarni beruvchi eng kichik natural son topilsin.
#include
#include
using namespace std;
int main()
{
for(int i=7; i<=1000; i++)
{
if ((i%2==1)&&(i%3==2)&&(i%4==3)&&(i%5==4)&&(i%6==5))
cout< }
return 0;
}
20-misol. O‘ngdan chapga va chapdan o‘nga bir xil o‘qiladigan sonlar palindromlar deyiladi. Masalan 42324 yoki 1331 sonlari – palindrom. Berilgan oraliq ichida palindrom sonlarni topuvchi dastur tuzing.
#include
using namespace std;
void main()
{
int n1, k, i, n2, S=0;
cout<<"n1="; cin>>n1;
cout<<"n2="; cin>>n2;
//Chegaralar n1 dan n2 gacha
//Ushbu masalada tekshirilayotgan sonni teskarisiga almashtirib uni dastlabki son bilan taqqoslash kerakdir.
//Agar ular teng bo'lsa, demak son polindrom hisoblanadi.
i=n1;
while(i<=n2)
{
S=0;
k=i; //i ning qiymati keyingi sikl ichida o'zgarib ketmasligi uchun ishlatiladi.
while(k>0) //Sonni teskari tartibda almashtirish algoritmi
{
S= S*10 + k%10;
k=k/10;
}
if (S==i) //Oldingi ko'rinishi bilan taqqoslash
cout< i++;
}
}
21-misol. Raqamlar soni juft bo‘lgan 131 ga karrali eng kichik natural son topish uchun dastur tuzilsin.
//1-usul
#define _cpluscplus 201103L //Programma matni C++11 standarti asoida yozilmoqda
#include
using namespace std;
void main()
{
int k, r, rq=0;
cout<<"Ushbu son:"< for(int i=131; i<=54656; i++)
{
k=i;
while(k!=0)
{
r=k%10;
rq++;
k=k/10;
}
if(rq%2==0 && i%131==0)
{
cout< break;
}
rq=0;
}
}
2)
#define _cpluscplus 201103L //Programma matni C++11 standarti asoida yozilmoqda
#include
using namespace std;
void main()
{
int n, a, k;
n = 131;
do
{
n= n + 131;
a= n;
k= 0;
do
{
k= k + 1;
a= a/10;
while(a==0)
while(k%2==0);
cout<}
22-misol. Agar biz biror-bir sonning barcha raqamlarini qo‘shib, so‘ngra hosil bo‘lgan yig‘indining ham barcha raqamlarini qo‘shib, bu jarayonni ko‘p marotaba takrorlasak, oxir-oqibat bir xonali son (raqam) hosil qilamiz. Hosil bo‘lgan raqam berilgan sonning raqamli ildizi deyiladi. Masalan, 561 soning raqamli ildizi 3 ga teng(5 + 6 + 1 = 12; 1 + 2 = 3).
Sonning raqamli ildizini topuvchi dastur tuzing.
#include
using namespace std;
int main()
{
int i=10, S=0, n, r;
cout<<"n="; cin>>n;
while(n!=0)
{
while(n!=0)
{
r=n%10;
S+=r;
n=n/10;
}
if(S>10)
{
n=S;
S=0;
}
}
cout< return 0;
}
23-misol. Shunday uch xonali son topingki, uni 11 ga bo‘lganda bo‘linma uning raqamlari yig‘indisiga teng bo‘lsin.
#include
using namespace std;
void main()
{
int k, r, S=0;
float i1;
for(int i=100; i<=999; i++)
{
k=i; //I ning qymatini sikl ichida o’zgraib ketadi.
while(k!=0) //Sonning raqamlari yig’indisi aniqlash sikli
{
r=k%10;
S+=r;
k=k/10;
}
i1=(float)i/11; //i/11 amali I ni 11 ga bo’lib butun qismini yozishni bildiradi. SHuning uchun turga keltirish amalidan foydalanilgan.
if(i1==S) //raqamlar yig’indisi va bo’linma tekshirilmoqda
cout< S=0; //S ni bo’shatish kerak.
}
}
Do'stlaringiz bilan baham: |