1 /*
2 * Main.c
3 * C10-循環-10. 求序列前N項和
4 * Created on: 2014年7月30日
5 * Author: Boomkeeper
6 *******部分通過*******
7 */
8
9 #include <stdio.h>
10
11 int main(void) {
12
13 double sum = 0.0; //記錄前N項和
14 int numerator = 2,denominator = 1; //分子分母
15 int N; //題目中的N
16 int i;//循環使用
17 int tem = 0;
18
19 scanf("%d", &N);
20
21 if (N == 1)
22 printf("%.2f\n", (double) numerator / denominator);
23 else {
24 sum = (double) numerator / denominator;
25 for (i = N; i > 1; i--) {
26 tem = denominator;
27 denominator = numerator;
28 numerator = numerator + tem;
29 sum += (double) numerator / denominator;
30 }
31 printf("%.2f\n", sum);
32 }
33
34 return 0;
35 }

不完美...
題目鏈接:
http://pat.zju.edu.cn/contests/basic-programming/%E5%BE%AA%E7%8E%AF-10
,
,
,
#include <stdio.h>
float xulie(int x);
void main()
{
int n;
scanf("%d",&n);
printf("%f",xulie(n));
}
float xulie(int x)
{
if(x==1)
return 1;
else
return (x%2==0)?xulie(x-1)+1.0/x:xulie(x-1)-1.0/x;
}
有必要用個大數組麼~
在下的版本:請指正~
#include<stdio.h>
void main()
{
int a = 1, b = 2, c, i;
double sum = 2;
for( i=1; i<10; i++ )
{
c = a + b, a = b, b = c;
sum += double(b) / a;
}
printf("數列前十項和為:%f\n", sum);
}
結果:16.479906~
第一個回答不會發生數組溢出錯誤麼?~d[10]是干什麼用的?沒有經過初始化就使用了,發生了除零錯誤~
第二個顯然誤解了樓主的意思了~而且數列要累加到第十項,那個整數列要算到第十一項~