已知 S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+N) ,当N的值为50时,求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);
}1.9608把一张一元钞票,换成一分、二分和五分硬币,每种至少11枚,问有多少种方案?
#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)
printf(“x=%d,y=%d,z=%d”,x,y,z);
count++;
}
}
}
printf(“there are %d methods”,count);
}13“完数”:
一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。例如,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);
}530下面的程序是求[200,800]之间最大的20个素数之和。
程序:
#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);
}14510“同构数”:
所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[2,1000]之间所有同构数之和。(提示:若x是m位同构数,则x的平方除以10的m次方的余数就是x)
#include
#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);}
}
printf("\n%5ld,%5ld",count,sum);
}1113倒勾股数:
A,B,C是三个小于或等于300的正整数,当满足1/A^2+1/B^2=1/C^2关系,并且A>B>C时,称为倒勾股数。求这样的倒勾股数有多少组。填空完成程序,然后运行程序得出正确结果。(答案填程序运行结果,保留整数位)
#include
main()
{double a,b,c;
int count=0;
clrscr();
for( c=1;c<=300;c++)
for (b=c+1;b<=300;b++)
for (a=b+1;a<=300;a++)
if (1.0/(a*a)+1.0/(b*b)==1.0/(c*c) )
count=count+1 ;
printf("%d",