日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

赶鸭子问题

發布時間:2023/12/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 赶鸭子问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:趕鴨子問題

一.題目分析

? ? ? ? 用遞歸方法設計下列各題,并給出每道題目的遞歸出口(遞歸結束的條件)和遞歸表達式。同時考慮題目可否設計為非遞歸方法,如果可以,設計出非遞歸的算法。

? ? ? ? 一個人趕著鴨子去每個村莊賣,每經過一個村子賣去所趕鴨子的一半又一只。這樣他經過了七個村子后還剩兩只鴨子,問他出發時共趕多少只鴨子?經過每個村子賣出多少只鴨子?

? ? ?? 分析思路:從后向前推測,最后剩余鴨子兩只,每次相對于上一次來說,剩余x-(x/2+1)只鴨子。

?

二.算法設計

? ? ? 采用遞歸函數f(n)來完成整個過程,因為每次的過程步驟都相同,因此用同一個函數反復調用即可,最后給出一個結束條件,就是村莊數超過8時,遞歸調用結束。

?

三.源代碼

package duck_qustion;import java.util.Scanner;public class Duck{//用循環法/*一個人趕著鴨子去每個村莊賣,每經過一個村子賣去所趕鴨子* 的一半又一只。這樣他經過了七個村子后還剩兩只鴨子,問他* 出發時共趕多少只鴨子?經過每個村子賣出多少只鴨子?*/public static void main(String[] args) {// TODO Auto-generated method stubcount();}public static void count() {int sub_duck = 2;int sum = 0 ;int duck = 2;for(int s = 0;s<7;s++) {duck = (duck + 1) * 2;}sum = duck ;System.out.println("鴨子的總數為" + sum);System.out.println("請輸入需要查詢的村莊序號");@SuppressWarnings("resource")Scanner input = new Scanner(System.in);int n = input.nextInt();for (int i = 0; i < (7 - n); i++) {sub_duck = (sub_duck + 1) * 2;}System.out.println("經過第 " + n + "個村莊時,剩余鴨子的個數為" + sub_duck);} }

四.運行,調試截圖

運行截圖:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 圖1

調試截圖:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 圖3

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖4

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖5

?

五.心得體會

? ? ?? 使用遞歸調用時,優點在于代碼量少,使得代碼有更高的可讀性,開起來不繁瑣,但是缺點在于效率沒有非遞歸的效率高,并且代碼的可讀性不高,對于判斷遞歸的出口不易判斷。

? ? ?? 使用非遞歸調用時,優點在于效率比遞歸的效率高,并且代碼的可讀性高,容易理解。缺點在于代碼量多,使得代碼沒有良好的可讀性,看起來過于冗雜。

? ? ?? 此次的程序使我對于遞歸和非遞歸的理解更深刻,在實際題目中的運用更熟練。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的赶鸭子问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。