简单的数学题(斐波那契数列)
本帖最后由 smile1110 于 2017-1-28 19:44 编辑问题:
有一对兔子,从出生后第 3 个月起每个月都生一对兔子
小兔子长到第三个月后每个月又生一对兔子
假如兔子都不死,问每个月的兔子总数为多少只?
这是一道古老的数学题,有n种解法,速度最快也最简单的是枚举数组 ps:c语言其实已经内置了Fibonacci函数
#include <stdio.h>
//有一对兔子,从出生后第 3 个月起每个月都生一对兔子
//小兔子长到第三个月后每个月又生一对兔子
//假如兔子都不死,问每个月的兔子总数为多少只?
//设 months 1月 2月 3月 4月 5月 6月 7月8月9月
// total 1对 1对 2对 3对 5对 8对 13对 21对 34对
// 1 1 1+1 1+2 2+3 3+5 5+8 8+13 13+21
int main()
{
int rabbit ,total,months;
while(scanf("%d",&months)!=EOF)
{
if(months<3)
printf("The total number of rabbits is 1");
else
{
rabbit=rabbit=1;
for(total=2;total<months;total++)
rabbit=rabbit+rabbit;
printf("The total number of rabbits is \t%d\n", (rabbit)*2);
}
return 0;
}
}
送上一个java的作业题,可自行修改,,输出前20个数并判断某个数是否为斐波那契数列中的数
package build02;
import java.util.Scanner;
public class Fibonacci {
public static void main(String[] args) {
// TODO 自动生成的方法存根
@SuppressWarnings("resource")
Scanner scanner= new Scanner(System.in);
System.out.println("<斐波那契数列>请输入待检验的数");
long num=scanner.nextInt();
long a[];a=new long;
int k=1;
a=0;a=1;a=1;
for(int i=1;i<50;i++){
a=a+a;
if(i<=20){
System.out.println("第"+k+"个数字为:"+a);
};
k++;
};
for(int i=1;i<50;i++){
if(a==num){
System.out.println(num+"是斐波那契数列中的一个数,且为第"+i+"个数");
break;
};
if(a>num){
System.out.println(num+"不是斐波那契数列中的数");
break;
};
};
}
}
本帖最后由 citizen 于 2017-1-28 21:13 编辑
def fib(x):
n,a,b=0,0,1
while n < x-1:
a,b=b,a+b
n+=1
print('the number of rabbit is: '+str(b))
感觉python果然简洁
这是什么 为什么我看不懂 第一个IDE是codeblocks第二个是VS吗? 谢谢分享 终于在论坛有看得懂的代码了{:1_924:} {:301_982:} 输出那个a 为什么要乘以2啊 奉聪 发表于 2017-1-28 10:49
输出那个a 为什么要乘以2啊
晓得了,是有多少个,不是有多少对,看掉了 新年快乐,谢谢分享