编写一个程序,有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
程序分析:请抓住分子与分母的变化规律。
第1个回答 2016-01-04
#include<stdio.h>
#include<stdlib.h>
int func(int n)
{
if(n==1)return 1;
else if(n==2)return 2;
else return func(n-1)+func(n-2);
}
int main()
{
int i;
double sum=0;
int a[20],b[20];
for(i=0;i<20;i++)
{
a[i]=func(i+1);
b[i]=func(i+2);
sum += (double)b[i]/(double)a[i];
}
printf("sum=%lf\n",sum);
system("pause");
return 0;
}本回答被提问者采纳
#include<stdlib.h>
int func(int n)
{
if(n==1)return 1;
else if(n==2)return 2;
else return func(n-1)+func(n-2);
}
int main()
{
int i;
double sum=0;
int a[20],b[20];
for(i=0;i<20;i++)
{
a[i]=func(i+1);
b[i]=func(i+2);
sum += (double)b[i]/(double)a[i];
}
printf("sum=%lf\n",sum);
system("pause");
return 0;
}本回答被提问者采纳
第2个回答 2016-01-04
Private Sub Command1_Click()
Dim i%, k%, l%, t5
Dim n As Single
k = 1
l = 1
T = 1
For i = 1 To 20
l = l + T
n = n + l / k
T = k
k = l
Next
Print n
End Sub
Dim i%, k%, l%, t5
Dim n As Single
k = 1
l = 1
T = 1
For i = 1 To 20
l = l + T
n = n + l / k
T = k
k = l
Next
Print n
End Sub
第3个回答 2016-01-04
示例代码:(省略了main)
float sum = 0; //最终结果值
float num1 = 2;
float num2 = 1;
float lastNum2 = 1;
for(int i = 1; i <= 20; ++i)
{
sum = sum + num1 / num2;
if(i == 1)
{
num1 = 3;
num2 = 2;
}else
{
num1 = num1 + num2;
float oldNum2 = num2;
num2 = lastNum2 + num2;
lastNum2 = oldNum2 ;
}
}
printf("%f", sum );
float sum = 0; //最终结果值
float num1 = 2;
float num2 = 1;
float lastNum2 = 1;
for(int i = 1; i <= 20; ++i)
{
sum = sum + num1 / num2;
if(i == 1)
{
num1 = 3;
num2 = 2;
}else
{
num1 = num1 + num2;
float oldNum2 = num2;
num2 = lastNum2 + num2;
lastNum2 = oldNum2 ;
}
}
printf("%f", sum );