请教大家几道考研的C语言编程题 TC2.0

已知某数列的前两项为2和3,其后继根据当前的前两项的乘积按下列规则生成:
1、若乘积为一位数,则该乘积就是数列的后继项。
2、若乘积为两位数,则乘机的十位数字和个位数字依次做为数列的后继项
当n=10时 ,求出该数列的前十项为:
2 3 6 1 8 8 6 4 2 4 编写程序 求数列的第m项。

第1个回答  2009-12-27
#include<stdio.h>
#define MAXSIZE 10000
void main()
{
int num[MAXSIZE],i,m,temp;
num[0]=2;
num[1]=3;
scanf("%d",&m);
i=2;
while(i<m)
{
temp=num[i-1]*num[i-2];
if(temp<10)
{
num[i]=temp;
}
else
{
num[i]=temp/10;
num[++i]=temp%10;
}
i++;
}
printf("%d",num[m-1]);
}本回答被提问者采纳
第2个回答  2009-12-26
#include<stdio.h>
main()
{
int s[1000],i,j=0,k=0,z;
s[0]=2,s[1]=3;
printf("请输入小于1000的正整数\n");
scanf("%d",&z);
for(i=2;i<1000;i++)
{
if(j==0)
{
if(s[i-1]*s[i-2]<10)
{
s[i]=s[i-1]*s[i-2];
}
else
{
if(i==999)
{
break;
}
else
{
s[i]=s[i-1]*s[i-2]/10;
s[i+1]=s[i-1]*s[i-2]-s[i]*10;
j=1;
}
}
}
else
{
j=0;
}
}
printf("第%d项的值为%d",z,s[z-1]);
}
第3个回答  2009-12-26
12
相似回答