鱼C论坛

 找回密码
 立即注册
查看: 1339|回复: 6

xdm帮我看看哪里出错了

[复制链接]
发表于 2021-10-16 11:39:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
int main()
{
        int a[55],b[55],c[55],d[55],i,sum[55];
        a[0]=0;b[0]=0;c[0]=0;d[0]=1;
        for(i=1;i<55;i++)
        {
                d[i]+=c[i-1];
                a[i]=d[i];
                b[i]=a[i-1];
                c[i]=b[i-1];
        }
        for(i=0;i<55;i++)
        sum[i]=a[i]+b[i]+c[i]+d[i];
        do
        {
                scanf("%d",&i);
                if(i!=0)
                printf("%d\n",sum[i-1]);
        }
        while(i!=0);

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-16 11:59:23 | 显示全部楼层
dd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-16 12:21:43 | 显示全部楼层
请问你想输出的是什么?没有题目,单代码,很难帮你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2021-10-16 12:34:35 | 显示全部楼层
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-16 12:35:06 | 显示全部楼层
多谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-16 13:54:47 | 显示全部楼层
本帖最后由 hrpzcf 于 2021-10-16 14:11 编辑
  1. #include <stdio.h>

  2. unsigned getnum(unsigned);

  3. int main()
  4. {
  5.     unsigned years;

  6.     while (1)
  7.     {
  8.         printf("输入年数:");
  9.         while (scanf("%u", &years) != 1 || years < 1)
  10.         {
  11.             printf("输入有误,重新输入!\n");
  12.             goto flush;
  13.         }
  14.         printf("第%u年牛总数:%u。\n", years, getnum(years));
  15.     flush:
  16.         // 清空缓冲区的剩余字符
  17.         while (getchar() != '\n')
  18.             ;
  19.     }
  20. }

  21. unsigned getnum(unsigned x)
  22. {
  23.     if (x <= 4)
  24.         /* 前4年都是每年增加一头
  25.         因最早第2年生的小牛要到第5年才开始生小牛,以此类推 */
  26.         return x;
  27.     else
  28.         /* 也就是当年牛总数是过去第1年总数加上过去第3年总数 */
  29.         return getnum(x - 1) + getnum(x - 3);
  30. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-16 13:56:12 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-10-16 14:04 编辑
这题就是斐波那契数列(Fibonacci Sequence):0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ...

但你的题目稍微改一点,比如:题目用牛替代,第4年新牛才开始孕出新小牛
以下为我的代码,共参考:
  1. #include <stdio.h>

  2. int fibonacci(int n){ // 定义函数:斐波那契数列
  3.     if(!n) return n; // 当参数是 0,则返回 0
  4.     else if(n == 1) return 1; // 当参数是 1,则返回 1
  5.     return fibonacci(n-1) + fibonacci(n-2); // 否则递归函数(参数-1 和 参数-2 作为新参数)
  6. }

  7. int main(){
  8.     do
  9.     {
  10.         int year;
  11.         scanf("%d", &year); // 输入年
  12.         if(year == 0) break; // 当年份为 0,则退出循环
  13.         printf("%d\n", fibonacci(year-1)); // 调用函数:打印该年份的母牛数量
  14.     }
  15.     while(1);
  16.     return 0;
  17. }
复制代码
  1. 2
  2. 2
  3. 5
  4. 8
  5. 15
  6. 987
  7. 0
复制代码
2 5 15
母牛数量 2 8 987


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 19:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表