{ a=i/1000; b=i00/100; c=i0/10; d=i;
if (a*a+c*c==b*b*b+d*d*d) k=k+i; }
printf(\}
22. 设某四位数的千位数字与十位数字的和等于百位数字与个位数字的积,例如,对于四位数:9512,9+1=5*2,试问所有这样的四位数之和是多少?
1078289
23. 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求所有这样的三位数之和。
1301
24. 求[1,999]之间能被3整除,且至少有一位数字是5的所有正整数的个数。 main() {int i,k=0; int a,b,c;
for(i=1;i<=999;i++) { a=i/100; b=i0/10;
11
91
c=i;
if ((i%3==0)&&(a==5||b==5||c==5)) k=k+1; }
printf(\}
25. 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求所有这样的三位数中最大的一个是多少? main() {int i,max=0; int a,b,c;
for(i=100;i<=999;i++) { a=i/100; b=i0/10; c=i;
if ((a*a*a+b*b*b+c*c*c==i)&&(a!=b&&b!=c&&a!=c)) if (max
printf(\}
26. 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)
12
407
此三位数等于它的各位数字的立方和。试求这种三位数共有多少个?
4
94111
27. 求五位数各位数字的平方和为100的最大的五位数。
28. 所谓“水仙花数”是指一个三位数,其各位数字的三次方之和等于该数本身,例如:153=1^3+3^3+5^3,故153是水仙花数,求[100,999]之间所有水仙花数之和。 main() {int i,k=0; int a,b,c;
for(i=100;i<=999;i++) { a=i/100; b=i0/10; c=i;
if ((a*a*a+b*b*b+c*c*c==i)) k=k+i; }
printf(\}
29. 设某四位数的各位数字的平方和等于100,问共有多少个这种四位数? 49
30. 回文数是指正读和反读都一样的正整数。例如3773是回文数。求出[1000,9999]以内的所有回文数的个数。 main()
13
1301
90
{long i,k=0; int a,b,c,d;
for(i=1000;i<=9999;i++) { a=i/1000; b=i00/100; c=i0/10; d=i;
if (d*1000+c*100+b*10+a==i) k=k+1; }
printf(\}
3. 分硬币
31. 把一张一元钞票,换成一分、二分和五分硬币,每种至少8枚,问有多少种方案? #include
if (i+2*j+5*k==100) s=s+1; printf(\}
14
80
32. 50元的整币兑换成5元、2元和1元币值(三种币值均有、缺少一种或两种都计算在内)的方法有多少种。
146
33. 50元的整币兑换成5元、2元和1元币值(要求三种币值均有)的方法有多少种。
106
34. 马克思曾经做过这样一道趣味数学题:有30个人在一家小饭店里用餐,其中有男人、女人和小孩,每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,共花去50先令。如果要求男人、女人和小孩都有人参与,试求有多少种方案分配男人、女人和小孩的人数。 9 main() {int i,k=0; int a,b,c;
for(a=1;a<=30;a++) for(b=1;b<=30;b++)
if ((a*3+b*2+(30-a-b)==50)&&(a+b<30)) k++; printf(\}
4. 勾股、弦数
35. A,B,C是三个小于或等于100正整数,当满足1/A^2+1/B^2=1/C^2关系时,称为倒勾股数。求130B>C的倒勾股数有多少组。
main() /*p2_2*/ {int i,a,b,c,n=0; for(c=1;c<=50;c++)
15
1