C語言遞迴之母牛的故事
遞迴法下的母牛的故事(C語言)
*題目如下:(該題目來自於C語言網上的1004題)
*首先,該題目的題意有些不清楚,年初和年頭是倆個不一樣的概念。
*我們根據規定的輸入輸出格式,可以推斷出一下表格:
*簡略分析以上表格:
在第四年的時候,有四頭牛,一頭為第一年的母牛記作A,其他三頭分別是3歲,2歲,1歲。
而題目的意思是,3歲的牛在第二年就可以生育。也就意味著,第五年的時候,有奶牛A,4歲奶牛(已經和A具有同等地位),其他四頭分別是,3歲,2歲,1歲,1歲。
依此類推,第8年有6頭A(每年不斷生育),三頭3歲,四頭2歲,六頭1歲。
很容易發現:n年的奶牛數量,是n-1年的奶牛數量與n-3年的奶牛數量之和
*由此,便有以下程式碼:
#include<stdio.h>
int main(){
int a[54]={1,2,3,4};
int i = 0, j, n;
int b[100]={0};
for(j = 4; j <= 53; j++){
a[j] = a[j-1] + a[j-3];//遞迴思想
}
scanf("%d", &n);
while(n!=0&&n<55){
b[i] = a[n-1];//把a[n-1]的值依此賦予b陣列
i++; //記錄賦予的次數
scanf("%d", &n);
}
for(j = 0; j < i; j++){
printf("%d\n", b[j]);
}
return 0;
}
這是我的第一篇部落格,如有寫的不恰當的地方,希望各位多多指正,謝謝
題目連結如下:
C語言網1004題
相關文章
- c語言_遞迴C語言遞迴
- C#語言函式遞迴C#函式遞迴
- 發現C語言遞迴深度有限制C語言遞迴
- C語言用遞迴方法求解階乘C語言遞迴
- 程式設計中的遞迴(C語言為例)程式設計遞迴C語言
- C語言 遞迴實現二叉排序樹的插入C語言遞迴排序
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- GO語言————6.6 遞迴函式Go遞迴函式
- C語言系列之 函式與遞迴-尹成-專題視訊課程C語言函式遞迴
- C語言-for迴圈之窮舉法練習C語言
- 函數語言程式設計之尾呼叫和尾遞迴函數程式設計遞迴
- 有趣的 Scala 語言: 使用遞迴的方式去思考遞迴
- C語言:迴文數計算C語言
- C#遞迴C#遞迴
- 藍橋杯訓練--母牛的故事(很清晰的思路)
- C語言的本質(32)——C語言與彙編之C語言內聯彙編C語言
- C++遞迴演算法之鳴人的影分身C++遞迴演算法
- C#遞迴例程C#遞迴
- c語言遞迴函式實現求最大公約數(Euclid演算法)C語言遞迴函式演算法
- 12 種程式語言的起源故事
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- C++遞迴演算法之爬樓梯C++遞迴演算法
- 探索c#之遞迴APS和CPSC#遞迴
- C語言系列之 遞迴演算法示例與 Windows 趣味小專案-尹成-專題視訊課程C語言遞迴演算法Windows
- 函式之遞迴函式遞迴
- 基於C語言用遞迴思想實現斐波那契數列的函式設計C語言遞迴函式
- 【C++】翻轉二叉樹(遞迴、非遞迴)C++二叉樹遞迴
- 探索c#之尾遞迴編譯器優化C#遞迴編譯優化
- C語言goto語句以及用goto語句構成迴圈C語言Go
- C語言學習【3】——判斷與迴圈C語言
- 第04天C語言(15):for迴圈-注意點C語言
- 細學C++之C++語言的特點C++
- JavaScript之遞迴的簡單使用JavaScript遞迴
- JavaScript專題之遞迴JavaScript遞迴
- Java語言非遞迴求第n個斐波那契數Java遞迴
- 程式碼之美---遞迴之美遞迴
- 演算法-一步步教你如何用c語言實現堆排序(非遞迴)演算法C語言排序遞迴
- C語言 C語言野指標C語言指標