在吗 没太明白啊
追答唉,气死了,本来打了一大段文字,结果网页卡住了,全没了,还得重新打~
不好意思,前面的回答有误,是我开始理解错了,正确理解如下:
第一天:1(记为A0)
第二天:1(A0)
第三天:1(A0) + A0复制的1(记为B0) = 2
第四天:1(A0) + 1(B0) + A0复制的1(记为C0) = 3
第五天:1(A0) + 1(B0) + 1(C0)+ A0复制的1(记为D0) + B0复制的1(E0) = 5
.......
其实这是个斐波那契数列。
斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)
这道题我把它看成两天一天复制一次可以吗 简化运算
追答你这样理解会好一些:
假如第n-2天的数量为M,那么到第n天(对于从第n-2天算起,第三天就是第n天),这些M个数量全部都会复制出新的一份。
因此从第三天起,每天复制出来的数量是正好是第(n-2)那天的数量,那么第n天的数量就是前一天的数量(第n-1天的数量) + 复制的数量(即第n-2天的数量)
可以看成等比数列吗
2的n次方
可是这样做跟答案比差太多了
追答这就是个斐波那契数列啊,运算公式就是Fn=F(n-1)+F(n-2),写成函数就是下面这样:
int getNumber(int day) //day代表第几天
{
if (day < 3) return 1;//day<3时,返回1
retrun getNumber(day - 1) + getNumber(day - 2);
}
下面的程序模仿了东西的复制过程。
其中a代表“年龄”为1天的东西,b代表年龄为2天的东西,c代表年龄为3天及以上的东西,
a+b+c代表聚宝盆东西的总数。
#include<stdio.h>
不太明白 具体说下好吗
追答第一天1个,过三天2个,再过三天4个,再过三天8个....首项1,公比2,学过等比数列么。然后键盘输入n的值传给函数,在输出就好了。
鸡生蛋的问题
很久不学c语言了代码肯定写不了。
追问这是直接能看出来的规律吗
还是需要先写在纸上自己找规律
没懂啊 具体说下好吗
追答把三天翻一倍转成一天翻一倍比较好弄
所以用n%3
然后循环。
每次翻一番。
追问c++?
追答这是一种语言
建立在c上的
你应该看得懂。
追问你写的代码我在c文件上敲可以吗
追答格式不一样不可以。
你最好自己整理一下语句。
如果用的是c加加编译器是可以的。
追问我就没懂
你这i是余数啊
用余数循环有什么意义
追答用错了。
应该是倍数对吗
那多那几天怎么办啊 不算了?
追答不算
因为没用。
追问这是一种什么思想啊 好高深
追答多出来的那几天不会多出东西。
所以不用考虑。
不对啊 输入n为三时输出1
可答案应该是2
追答额
你写了×2的循环语句了没
还有,number初始值为1
我下了
要是还有问题,明天再回答。
追问你看下我这段代码可以吗
还在吗 这么想不对啊
当n等于45时正确答案已经过十亿了
而这么算的话才几万
追答你是在扯淡吗?45的时候到二十几万。
不对。45的时候当然是几万
你输入1,3,6试试
看是不是1,2,4