for(c=1;c
if(a+b+c<100&&(b*b)*(c*c)+(a*a)*(c*c)==(a*a)*(b*b))
n++;
cout<return0;
}
7.编程序求出1~100所有整数的平方和并输出结果。
338350
#include
usingnamespacestd;
intmain()
{
inti,n=0;
for(i=1;i<=100;i++)
{
n=n+i*i;
}
cout<return0;
}
8.编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。
1298515
#include
usingnamespacestd;
intmain()
{
intn,i,a,b,c,d,s=0;
for(n=1000;n<=9999;n++)
if(n%2!
=0)
{
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
i=a+b+c+d;
if(i%25==0)
s=s+n;
}
cout<
return0;
}
9.编程序求在3000以内被17或者23整除的正整数数的个数。
299
#include
usingnamespacestd;
intmain()
{
intn=0,i;
for(i=1;i<=3000;i++)
if(i%17==0||i%23==0)
n++;
cout<return0;
}
10.一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如:
6=1+2+3,则6就是一个完数。
求出1000以内的完数的个数。
3
#include
usingnamespacestd;
intmain()
{
intn,i,sum=0;
for(n=1;n<=1000;n++)
{
ints=0;
for(i=1;i{
if(n%i==0)
{
s=s+i;
}
}
if(s==n)
{
sum++;
}
}
cout<return0;
}
11.已知一个数列的前3个数为0,0,1,以后每个数为前3个数的和,编程序求此数列的第36个数。
334745777
#include
usingnamespacestd;
intmain()
{
intn,f1=0,f2=0,f3=1,f4;
for(n=4;n<=36;n++)
{
f4=f1+f2+f3;
f1=f2;
f2=f3;
f3=f4;
}
cout<return0;
}
12.编写程序,计算在0至50的范围内有多少个数,其每位数的乘积大于每位数的和。
23
#include
usingnamespacestd;
intmain()
{
intn,i,j,s=0;
for(n=0;n<=50;n++)
{
i=n/10;
j=n%10;
if(i*j>i+j)
s++;
}
cout<
return0;
}
13.用一元纸币兑换一分、两分和五分的硬币,要求兑换硬币的总数为50枚,问共有多少种换法?
(注:
在兑换中一分、两分或五分的硬币数可以为0枚)13
#include
usingnamespacestd;
intmain()
{
intx,y,z,s=0;
for(x=0;x<=50;x++)
for(y=0;y<=50;y++)
for(z=0;z<=50;z++)
if(1*x+2*y+5*z==100&&x+y+z==50)
s++;
cout<
return0;
}
14.程序,求四位数的奇数中,所有各位数字之积(且不为0)是60的倍数的数的和。
3456254
#include
usingnamespacestd;
intmain()
{
intn,i,a,b,c,d,s=0;
for(n=1000;n<=9999;n++)
if(n%2!
=0)
{
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
i=a*b*c*d;
if(i%60==0&&i!
=0)
s=s+n;
}
cout<
return0;
}
15.所谓回文数是从左至右与从右至左读起来都是一样的数字,如:
121是一个回文数。
编写程序,求出100—900之间的所有回文数的个数。
80
#include
usingnamespacestd;
intmain()
{
intn=0,i,a,b;
for(i=100;i<=900;i++)
{
a=i/100;
b=i%10;
if(a==b)
n++;
}
cout<return0;
}
16.编程序求出100到200之间同时满足除3余2和除5余3条件的数的个数。
6
#include
usingnamespacestd;
intmain()
{
intn=0,i;
for(i=100;i<=200;i++)
if(i%3==2&&i%5==3)
n++;
cout<return0;
}
17.百钱百鸡问题。
用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
3
#include
usingnamespacestd;
intmain()
{
intn=0,m,x,y,z;
for(x=1;x<100;x++)
for(y=1;y<100;y++)
for(z=1;z<100;z++)
if(z%3==0)
{
m=z/3;
if(x+y+z==100&&5*x+3*y+m==100)
{
n++;
}
}
cout<return0;
}
18.若有三个正整数a、b、c满足a^2+b^2=c^2,则a,b,c称为勾股数组,编一程序,问有多少个三个数均小于100的勾股数组(注意:
a,b,c不能为0)。
100
#include
usingnamespacestd;
intmain()
{
intn=0,a,b,c;
for(a=1;a<100;a++)
for(b=1;b<100;b++)
for(c=1;c<100;c++)
if(a*a+b*b==c*c)
{
n++;
}
cout<return0;
}
19.今有5羊4犬3鸡2兔值钱1496,4羊2犬6鸡3兔值钱1175,3羊1犬7鸡5兔值钱958,2羊3犬5鸡1兔值钱861,求兔值多少钱?
29
#include
usingnamespacestd;
intmain()
{
intn=0,x,y,z,k;
for(x=1;x<430;x++)
for(y=1;y<958;y++)
for(z=1;z<500;z++)
for(k=1;k<861;k++)
if(5*x+4*y+3*z+2*k==1496
&&4*x+2*y+6*z+3*k==1175
&&3*x+1*y+7*z+5*k==958
&&2*x+3*y+5*z+1*k==861)
cout<return0;
}
20.“水仙花数”是指这样的数,其各位数字的立方和等于该数本身,如:
153=1^3+5^3+3^3。
编写程序求100至400的范围内有多少个水仙花数。
3
#include
usingnamespacestd;
intmain()
{
intn,a,b,c,s=0;
for(n=100;n<=400;n++)
{
a=n/100;
b=n/10%10;
c=n%10;
if(n==a*a*a+b*b*b+c*c*c)
s++;
}
cout<
return0;
}
21.编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是8的倍数,且A+C=B,即第1位数加上第3位数等于第2位数。
57
#include
usingnamespacestd;
intmain()
{
inta,b,c,d,n,s=0;
for(n=1000;n<=9999;n++)
{
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
if(n%8==0&&a+c==b)
s++;
}
cout<
return0;
}
22编写程序,求出3到100之间的所有非偶数非素数的数之和。
1441
#include
usingnamespacestd;
intmain()
{
intn,i,s=0;
boolflag;
for(n=3;n<=100;n++)
if(n%2!
=0)
{
for(i=2;iif(n%i==0)
{
flag=1;
break;
}
else
flag=0;
if(flag)
s=s+n;
}
cout<
return0;
}
23.编程序求2+4+8+16+32+…这样的数之和。
如果累加数大于1500时,则程序终止并输出结果。
2046
#include
usingnamespacestd;
intmain()
{
intn=2,i,s;
for(s=0;s<1500;n=2*n)
s=s+n;
cout<
return0;
}
24.编写程序,求四位数的奇数中,所有各位数字之积(且不为0)是125的倍数的数的和。
161095
#include
usingnamespacestd;
intmain()
{
inta,b,c,d,n,s=0;
for(n=1000;n<=9999;n++)
if(n%2!
=0)
{
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
if(a*b*c*d!
=0&&(a*b*c*d)%125==0)
s=s+n;
}
cout<
return0;
}.
25.已知Fibonacci数列:
1,1,2,3,5,8,……,它可由下面公式表述:
F
(1)=1ifn=1F
(2)=1ifn=2F(n)=F(n-1)+F(n-2)ifn>2试求F(45)值。
提示:
最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。
1134903170
#include
usingnamespacestd;
intf(inti);
intmain()
{
cout<return0;
}
intf(inti)
{
if(i<=2)
return1;
else
returnf(i-1)+f(i-2);
}
26.编写程序,统计200~300之间的所有满足三个数字之积为24,三个数字之和为10的数的个数。
2
#include
usingnamespacestd;
intmain()
{
intn,a,b,c,s=0;
for(n=200;n<=400;n++)
{
a=n/100;
b=n/10%10;
c=n%10;
if(a*b*c==24&&a+b+c==10)
s++;
}
cout<
return0;
}
27.有36个学生一起买小吃,共花钱120元,其中每个大学生花4元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)?
3
#include
usingnamespacestd;
intmain()
{
inta,b,c,s=0;
for(a=1;a<=34;a++)
for(b=1;b<=34;b++)
for(c=1;c<=34;c++)
{
if(a+b+c==36&&4*a+2*b+c==120)
s++;
}
cout<
return0;
}
28.已知A
563
#include
usingnamespacestd;
intmain()
{
inta,b,s,min_a,min_s=716699;
for(a=1;a<=847;a++)
for(b=a+1;b<=716699;b++)
if(a*b==716699)
{
s=a+b;
if(s<=min_s)
{
min_s=s;
min_a=a;
}
}
cout<return0;
}
29.有一个分数序列:
2/1,3/2,5/3,8/5,13/8,21/13....(注:
该数列从第二项开始,其分子是前一项的分子与分母的和,而其分母是前一项的分子),求出这个序列前24项的和。
要求:
按四舍五入的方式精确到小数点后第二位。
39.13
#include
#include
usingnamespacestd;
intmain()
{
doublen,m,f1=1,f2=2,f3,s=0;
for(n=1;n<=24;n++)
{
f3=f2/f1;
s=s+f3;
m=f2;
f2=f1+f2;
f1=m;
}
cout<return0;
}
30.设有6个十进制数字a,b,c,d,f,e,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。
2
#include
usingnamespacestd;
intmain()
{
inta,b,c,d,e,f,s=0;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(e=2;e<=9;e++)
for(f=0;f<=9;f++)
if((10000*a+1000*b+100*c+10*d+f)*e==10000*f+1000*d+100*c+10*b+a)
{
s++;
}
cout<
return0;
}
31.若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是多因子完备数。
求[1,500]之间有多少个多因子完备数。
5
#include
usingnamespacestd;
intmain()
{
intn,i,s,sum=0;
for(n=1;n<=500;n++)
{
s=0;
for(i=1;i<=n;i++)
{
if(n