作业帮 > 综合 > 作业

都是C语言的题目,这个也是我网上找的题目,下面有分析,你帮我写一个程序不,用迭代法写。谢谢啦

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/14 02:50:55
都是C语言的题目,这个也是我网上找的题目,下面有分析,你帮我写一个程序不,用迭代法写。谢谢啦
一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,问到第 12 个月时,该饲养场共有兔子多少只?
分析:这是一个典型的递推问题。我们不妨假设第 1个月时兔子的只数为 u 1 ,第 2 个月时兔子的只数为 u 2 ,第 3 个月时兔子的只数为 u 3 ,……根据题意,“这种兔子从出生的下一个月开始,每月新生一只兔子”,则有
u 1 = 1 , u 2 = u 1 + u 1 × 1 = 2 , u 3 = u 2 + u 2 × 1 = 4 ,……
根据这个规律,可以归纳出下面的递推公式:
u n = u(n - 1)× 2 (n ≥ 2)
对应 u n 和 u(n - 1),定义两个迭代变量 y 和 x ,可将上面的递推公式转换成如下迭代关系:
y=x*2
x=y
让计算机对这个迭代关系重复执行 11 次,就可以算出第 12 个月时的兔子数。参考程序如下:
cls
x=1
for i=2 to 12
y=x*2
x=y
next i
print y
end
#include  <stdio.h>
int main()
{
   
    int i=0;
  int y=0;
int x=1;
for(i=2; i<12;i++)
{
y=x*2;
x=y;
}
printf("%d",y);
}
再问: 为什么前面要定义 int i=0; int y=0;让他们的值为0 为什么不是直接定义 int i; int y;
再答: 这个是习惯问题,防止没有赋值的变量在程序内使用