c语言数字序列,C语言竞赛——数字序列

本文分享了三个C++程序,分别解决不同场景下的数列问题:第一个通过while循环和递推计算求解f(n)模7;第二个固定初始值,打印出前43项的周期性;第三个使用动态规划找到特定条件下数列的特定项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.#include

void main()

{

int i,f1,f2,f3,a,b,n; // 数据定义

while(1)

{

f1=1;

f2=1;

scanf("%d%d%d",&a,&b,&n);//参数读入

if(a==0&&b==0&&n==0)

break ;

for(i=3;i

{

f3=(a*f2+b*f1)%7; //递推计算

f1=f2;

f2=f3;

}

printf ("%d\n",f3); // 输出f(n)

}

}

2..#include

void main()

{

int i,f1,f2,f3,a=1,b=2;

f1=1;

f2=1;

printnf("8%d8%d",f1,f2);

for(i=3;i<43;i++)

{

f3=(a*f2+b*f1)%7; //递推计算

if ((i-1)%8==0)

printf("\n");

printf ("%8d",f3);

f1=f2;

f2=f3;

}

printf ("%d\n");

}

3..#include

void main()

{

int i,j,a,b,f[50],k,m;

long n;

while(1)

{

f[1]=1;

f[2]=1;

scanf("%d%d%d",&a,&b,&n);

if(a==0&&b==0&&n==0)

break ;

for(i=3;i<43;i++)

{

f[i]=(a*f[i-1]+b*f[i-2])%7;

for(j=2;j

if(ff[j-1]==f[i-1]&&f[j]==f[i])

{

m=i-1;

k=i-j;

break;

}

if(m!=0) break;

}

if(n

printf ("%d\n",f[n]);

else

printf("%d\n",f[(n-(m-1))%k+m-1]);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值