簡單遞迴演算法實現

2021-09-01 05:50:09 字數 1582 閱讀 4411

1.乙個人趕著鴨子去每個村莊賣,每經過乙個村子賣去所趕鴨子的一半又乙隻。

這樣他經過了七個村子後還剩兩隻鴨子,問他出發時共趕多少只鴨子?

經過每個村子賣出多少只鴨子?

public class demo1 

public static int judge()

public static int judge1(int shengyu,int i) else

int x1=((x+1)*2)-x;

system.out.println("第"+i+"個村子賣了"+x1+"只鴨子");

return x;

}}

2.角谷定理。輸入乙個自然數,若為偶數,則把它除以2,若為奇數,則把它乘以3加1。經過如此有限次運算後,總可以得到自然數值1。求經過多少次可得到自然數1。

public class demo2 

public static void judge(int i) else

step++;

system.out.print(i+"\t");

if(i==1) }}

}

3.**號碼對應的字元組合:在**或者手機上,乙個數字如2對應著字母abc,7對應著pqrs。那麼數字串27所對應的字元的可能組合就有3*4=12種(如ap,br等)。現在輸入乙個3到11位長的**號碼,請列印出這個**號碼所對應的字元的所有可能組合和組合數。

public class demo3 

public static void judge(string s)

}

4.日本著名數學遊戲專家中村義作教授提出這樣乙個問題:父親將2520個桔子分給六個兒子。分完 後父親說:「老大將分給你的桔子的1/8給老二;老二拿到後連同原先的桔子分1/7給老三;老三拿到後連同原先的桔子分1/6給老四;老四拿到後連同原先的桔子分1/5給老五;老五拿到後連同原先的桔子分1/4給老六;老六拿到後連同原先的桔子分1/3給老大」。結果大家手中的桔子正好一樣多。問六兄弟原來手中各有多少桔子?

演算法分析:

總共2520個橘子,分完最後每人手上420個橘子,老六分完前為420/(2/3)=630個橘子

分給老大的就是6301/3=210個橘子,所以老大分給老二後手裡還剩420-210=210個橘子

所以老大手中原有210/(7/8)=240個橘子;

老二原來應該有420/(6/7)-30=460個橘子

老三原來應該有420/(5/6)-4901/7=504

所以每個人a[i]=420*(8-i)/(7-i),再減去給別人的a[i]=a[i]-a[i-1]/(9-i);剩下的就是自己的

public class demo4 

public static void fenorange(int index)

for(i=5;i>0;i--)

a[0]=210*8/7;

for(i=5;i>0;i--)

int sum=0;

for(i=0;i<6;i++)

system.out.println(sum);

}}

遞迴演算法實現

遞迴演算法 1 乙個人趕著鴨子去每個村莊賣,每經過乙個村子賣去所趕鴨子的一半又乙隻。這樣他經過了七個村子後還剩兩隻鴨子,問他出發時共趕多少只鴨子?經過每個村子賣出多少只鴨子?題目分析 遞迴終止的條件是到第7個村莊時遞迴停止 演算法構造 定義遞迴函式f n 當 n 8時 剩餘2只鴨子,當 0時 總共趕...

遞迴演算法簡單題

最大公約數 題目內容 輸入兩個整數m,n,用遞迴演算法實現計算兩個數的最大公約數。輸入格式 輸入兩個整數m,n 輸出格式 最大公約數 輸入樣例 12,40 回車 輸出樣例 4 回車 時間限制 500ms記憶體限制 32000kb 理解最大公約數演算法!include int n intm void ...

遞迴演算法簡單應用

1.遞迴和非遞迴分別實現求第n個斐波那契數。斐波那契數 亦稱之為斐波那契數列 義大利語 successione di fibonacci 又稱 分割數列 費波那西數列 費波拿契數 費氏數列,指的是這樣乙個數列 1 1 2 3 5 8 13 21 在數學上,斐波那契數列以如下被以遞迴的方法定義 f0 ...