main()
{int i,n; long s; s=0;
scanf(\ for(i=1;i<=n;i++) s=s+i;
printf(\}
6、从键盘输入一个正整数,求出其阶乘并输出。 解法1: main() {float p; int i,k; p=1;
scanf(\ for(i=1;i<=k;i++) p=p*i;
printf(\}
解法2: main() {float p; int k; p=1;
scanf(\ while(k>=1) {p=p*k; k--; }
printf(\}
6A、求1-1/3+1/5-1/7+...-1/99+1/101之和。 解法1: main()
{float s1,s2,s; int i;
s1=s2=0;
for(i=1;i<=101;i+=4)
s1=s1+1.0/i; /*正数之和*/ for(i=3;i<=99;i+=4)
s2=s2+1.0/i; /*负数之和*/ s=s1-s2;
printf(\
} 解法2: main() {int i,p; float s; s=0; p=1;
for(i=1;i<=101;i+=2)
{s=s+p*1.0/i; /*p用于控制累加项的正负*/ p=-p; /*改变正负号*/ }
printf(\
}
6B、求20+21+22+...+263之和。 解法1:
#include
s=0;
for(i=0;i<=63;i++)
s=s+pow(2,i); /*2的i次幂*/ printf(\}
解法2: main() {float s,t; int i; s=0; t=1;
for(i=0;i<=63;i++) {s=s+t; t=t*2; }
printf(\}
7、求12+32+52+...+992之和。 main() {long s; int i; s=0;
for(i=1;i<=99;i+=2) s=s+i*i;
printf(\
}
8、求1+1/3+1/5+...+1/99之和。 main() {int i; float s;
s=0;
for(i=1;i<=99;i+=2)
s=s+1.0/i; /*不能写作1/i*/ printf(\}
9、求1+1/3+1/5+...的前20项之和。 main() {int i; float s;
s=0;
for(i=1;i<=20;i++)
s=s+1.0/(2*i-1); /*不能写作1/(2*i-1)*/ printf(\}
10、求1+1/3+1/5+...之和,直到某一项的值小于10-6时停止累加。 main()
{long n; /*不能写作int n*/ float s; s=0; n=1;
while(1.0/n>=1e-6)
{s=s+1.0/n; /*不能写作1/n*/ n+=2; }
printf(\
}
11、已知序列1/2,2/3,3/5,5/8,...,求其前20项之和。 解法1: main() {float s,a,b,t; int i; s=0; a=1; b=2;
for(i=1;i<=20;i++) {s=s+a/b;
t=a;
a=b; /*分子为前一项分母*/
b=b+t; /*分母为前一项分子分母之和*/
}
printf(\}
解法2: main() {float s,a,b; int i; s=0; a=1; b=2;
for(i=1;i<=20;i++) {s=s+a/b;
b=a+b; /*分母为前一项分子分母之和*/ a=b-a; /*分子为前一项分母*/ }
printf(\
}
12、求1!+2!+3!+...+20!之和。 解法1: main() {float s,p;
int n,k;
s=0; /*该语句必须在外循环之前*/ for(n=1;n<=20;n++)
{p=1; /*该语句必须在外循环体内部*/ for(k=1;k<=n;k++) /*求n的阶乘*/ p=p*k; s=s+p; }
printf(\}
解法2: main() {float s,p; int n; s=0;
p=1; /*该语句必须在循环之前*/ for(n=1;n<=20;n++)
{p=p*n; /*求n的阶乘*/ s=s+p; }
printf(\}
13、求1!+5!+9!+...+21!之和。
main()
{float s,p; int n,k;
s=0; /*该语句必须在外循环之前*/ for(n=1;n<=21;n+=4)
{p=1; /*该语句必须在外循环体内部*/ for(k=1;k<=n;k++) /*求n的阶乘*/ p=p*k; s=s+p; }
printf(\}