这道题怎么做,哪位帮看下
问题描述:
有一分数序列:2/13 13/821/13.求出 3/25/38/5
这个数列的前n项之和的整数部分
n的值运行时通过键盘输入给定,并且n<=3e。
输出值只保留整数(不要四舍五入)
效果如下:
输入:20。
输出:32。
答
供参考:
#include<stdio.h>
int main()
{
int n, i, k = 1, m = 2, t;
double sum = 0;
scanf("%d", &n);
if (n > 30) return 1;
for (i = 1; i <= n; i++)
{
sum += 1.0 * m / k;
t = m;
m = m + k;
k = t;
}
printf("%d\n", (int)sum);
return 0;
}
答
#include <stdio.h>
#define N 30
int main()
{
int i,n;
int a[N],b[N];
float sum=0;
a[0]=1;a[1]=2;
b[0]=2;b[1]=3;
scanf("%d",&n);
if(n==1) sum=2;
else if(n==2) sum = 2/1+3/2.0;
else{
sum = 2/1+3/2.0;
for(i=2;i<n;i++)
{
a[i] = a[i-1]+a[i-2];
b[i]=b[i-1]+b[i-2];
sum += 1.0* b[i]/a[i];
}
}
printf("%d",(int)sum);
return 0;
}