已知 S 1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+N) ,当N 的值为50时,求 1.9608
S的值。
要求:按四舍五入的方式精确到小数点后第四位。
#include
#include
main()
{float s 0.0;
int n,t 0;
for(n 1;n< 50;n++)
{t t+n;
s s+1.0/t;
}
printf("%7.4f",s);
}
把一张一元钞票,换成一分、二分和五分硬币,每种至少11枚,问有多少种方 13
案?
#include< stdio.h >
void main()
{int x,y,z,count 0;
for(x 11;x< 100;x++; )
{for(y 11;y< 50; y++; )
{ for(z 11;z< 20;z++)
{if(x+2*y+5*z 100)
1
printf(“x %d,y %d,z %d”,x,y,z);
count++;
}
}
}
printf(“there are %d methods”,count);
}
“完数”:
一个数如果恰好等于它的所有真因子之和,这个数就称为 “完数”。例如, 530
6的真因子为1,2,3,而6 1+2+3,因此,6是 “完数”。求1000 以内的
所有完数之和。
#include
main()
{int i,j,s 0,t;
for(i 2;i< 1000;i++)
{t 1;
for(j 2;j
if(i%j 0) t t+j;
if(t i) {printf("%4d",i);s s+i;}
}
printf("\n%d",s);
}
2
下面的程序是求[200,800]之间最大的20个素数之和。 14510
程序:
#include
#include
void main()
{ int k 800,sum 0, n 0, j, yes;
while((k> 200)&&(n<20))
{yes 1 ;
for(j 2; j< sqrt(k); j++)
if(k%j 0) {yes 0;break;}
if(yes)
{ printf(“%5d”,k);sum+ k;n++;
if(n%5 0) printf(“\n”);
}
k--;
}
printf("%d \n",sum);
}
“同构数”: 1113
所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平
方是25,25的平方是625,故5和25都是同构数,求[2,1000]之间所有
同构数之和。 (提示:若x是m位同构数,则x的平方除以10的m次方的
余数就是x)
#include
3
#include
#include
main()
{ long s;
long k,n,sum 0,count 0;
clrscr();
for (n 2;n< 1000;n++)
{ if (n<10) k 10;
else if (n<100) k 100;
else k 1000;
s n*n;
if (s%k n) {count++;sum+ n;printf("%4d",n);}