C语言 算法题 (自己改过的)

来源:百度知道 编辑:UC知道 时间:2024/06/08 20:28:20
有一对兔子(刚出生的),从出生后第N个月起每个月都生一对兔子,小兔子长到第N个月起每个月又生一对兔子,假如兔子都不死,问在N个月后 总共有多少对兔子?

是第N个月,不是"第3个月起"~!~
第3个N是"若干个月"的意思!

我的天啊,全都答非所问啊,
我要的是具有2个参数的函数, 从出生后第x个月起生产小兔子(这个x是参数一),y是总的月数(y是第2个参数),
返回值为y个月之后的兔子总(对)数.

网上的我早看过了,麻烦各位不要抄袭, 我提的根本不是同一个问题!
网上的限制在"第3个月起", 而我要的是 第3或4...6.12个月起的..... 这样你们应该能明白了吧.

其实这个题不难,就是要自己在草稿纸上画一下,找出数列的递推公式,下面是我编的,只输入前20个月的兔子数,楼主想要输出更多只要将M的值改下就行了,在VC6.0编译通过,有不明白的随时问我!

#include<stdio.h>
#define M 20

void main()
{
int N;
int a[M];
int i;
printf("请输入第几个月开始生小兔子:\n");
scanf("%d",&N);
for(i=0;i<N-1;i++)
a[i]=1; /*前N-1个月兔子总数只有1只*/
for(i=N-1;i<M;i++)
a[i]=a[i-N+1]+a[i-1];
printf("兔子数为:\n");
for(i=0;i<M;i++)
{
printf("%5d",a[i]);
if((i+1)%10==0)
printf("\n");/*每10个换行一次*/
}
}

就是斐波那契嘛, 程序到处都是, 搜索一下就好了

#include<stdio.h>
main()
{
long int f1,f2;
int n,m,i;
printf("Please input the N:\n"); /*出生后的第N个月*/
scanf("%d",&n);
printf("Please input the M(M>N):\n"); /*M个月后*/
scanf("%d",&m);
f1=1;
f2=1;
for(i=n;i&