【c語言趣味程式設計100例】兔子問題
阿新 • • 發佈:2019-01-02
兔子問題:
有一對兔子,從出生後第3個月起每個月都生一對兔子,
小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數?
解題思路:
兔子的增長個數 其本質上與斐波那契數列是一致的 就是
本月的兔子總數等於 前一個月的兔子數和前兩個月得兔子總個數
對fib1 和 fib2 初始化為1
每執行一個for 兔子的總個數就是前兩個月的和,fib = fib1+fib2
等得到總兔子數fib後,應該將前一個月的兔子數賦值給前兩個月的兔子數fib2 = fib1
總兔子數fib1 = fib 這樣依次執行下去,就可以得到總兔子數
#include<stdio.h> void main(){ /* 兔子問題: 有一對兔子,從出生後第3個月起每個月都生一對兔子, 小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數? 解題思路: 兔子的增長個數 其本質上與斐波那契數列是一致的 就是 本月的兔子總數等於 前一個月的兔子數和前兩個月得兔子總個數 對fib1 和 fib2 初始化為1 每執行一個for 兔子的總個數就是前兩個月的和,fib = fib1+fib2 等得到總兔子數fib後,應該將前一個月的兔子數賦值給前兩個月的兔子數fib2 = fib1 總兔子數fib1 = fib 這樣依次執行下去,就可以得到總兔子數 **/ int fib1 = 1,fib2 = 1,fib = 0;//fib1代表當前前一個月的兔子數量,fib2 代表前兩個月的兔子數量 printf("%d\t%d\t",fib1,fib2); for(int i=3;i<30;i++){ fib = fib2+fib1;//總兔子數 等於前兩個月的和。fib1+fib2 printf("%d\t",fib); if(i%4==0) printf("\n"); fib2 = fib1; fib1 = fib; } }