本文實例講述了C語言實現的猴子分桃問題算法。分享給大家供大家參考,具體如下:
問題:
海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子憑據分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均 分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?
程序:
#include<stdio.h>int divided(int n, int m) //注意該遞歸函數的定義{ if(n/5==0 || n%5!=1)return 0; if(m==1) return 1; return divided(n-n/5-1, m-1);}int main(int argc, char *argv[]){ int n; int m = 5; for(n = 1; ; n++) if(divided(n,m)) {printf("%d/n", n); break; }}
程序運行結果為:3121
希望本文所述對大家C語言程序設計有所幫助。
新聞熱點
疑難解答
圖片精選