回 帖 发 新 帖 刷新版面

主题:c语言求数列

各位大哥哥,大姐姐,小妹初学C语言,遇到一个难题。
请各位赐教。
已知数列前两项,
后继项根据前两项的乘积生成。
1.若乘积为位数,则乘积就是数列的后继项;
2.若乘积为位数,则乘积的后继项。
求第n项

回复列表 (共3个回复)

沙发

#include<stdio.h>
#include<conio.h>
int main()
{int a,b,c,i,n;
printf("please in put:n\n");
scanf("%d",&n);
int s[n];
printf("please in put:a,b\n");
scanf("%d %d",&a,&b);
s[0]=a;s[1]=b;
for(i=0;i<n;i++)
 {c=s[i]*s[i+1];
 if(c/10==0)
 s[i+2]=c;
 else
   {s[i+2]=c/10;
    s[i+3]=c%10;
    i=i+1;
   }
 }
for(i=0;i<n;i++)
printf("\n%d\t",s[i]);
getch();
return 0;
}

板凳

谢谢你提出的解决方案,
但是,当i=n-1时,是不是可能发生数组的越界呢?

3 楼


#include<stdio.h>
main ()
{int c,i,n,a[10];
printf("please input:n\n");
scanf("%d",&n);
a[0]=2;a[1]=3;
for(i=2;i<n;i++)
{ c=a[i-1]*a[i-2];
  if(c/10==0)
      a[i]=c;
  else 
  {a[i]=c/10;
   a[i+1]=c%10;
   i=i+1;
  }
}
printf("%4d",a[n-1]);
printf("\n");
}
只需要根据n改变数组的元素个数 即改变a[x]x的值来适应n

我来回复

您尚未登录,请登录后再回复。点此登录或注册