一个简单c语言编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 14:58:30
数列:
E(1)=E(2)=1
E(n)=(n-1)*E(n-1)+(n-2)*E(n-2) (n>2)
称为E数列,每一个E(n),(n=1,2,…)称为E数。求[1,30000]之内E数的个数。

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,num=2,a[21];
a[1]=1;
a[2]=2;

for(i=3;i<21;i++)
{a[i]=(i-1)*a[i-1]+(i-2)*a[i-2];
if(a[i]<30000)
++num;
}
printf("num=%d",num);
system("pause");
}

绝对正确,原创,呵呵

main()
{
int sum =0;
int T1 = 1,T2 = 1,T3;
T3 = 2*T2 + 1*T1;
sum = 2; //包括T1和T2的个数;
while(T3<=30000)
{
T3 = 2*T2 + 1*T1;
sum ++;
T1 = T2;
T2 = T3;
}
printf("%d\n",sum);
}