遞歸算法題1
一個整數,大於0,不用循環和本地變量,按照n,2n,4n,8n的順序遞增,當值大於5000時,把值按照指定順序輸出來。
例:n=1237
則輸出為:
1237,
2474,
4948,
9896,
9896,
4948,
2474,
1237,
提示:寫程序時,先致謝按遞增方式的代碼,寫好遞增的以后,再增加考慮遞減部分。
package com.swift; public class Digui_Dizeng_Dijian { public static void main(String[] args) { /* * 一個整數,大於0,不用循環和本地變量,按照n,2n,4n,8n的順序遞增,當值大於5000時,把值按照指定順序輸出來。 例:n=1237 則輸出為: * 1237, 2474, 4948, 9896, 9896, 4948, 2474, 1237, */ int n = 1237; dizeng(n); System.out.println(sum(100)); } //無返回值遞歸 public static void dizeng(int n) { System.out.println(n); if(n>9000) { dijian(n); } if (n < 5000) { dizeng(n * 2); } } public static void dijian(int n) { System.out.println(n); if(n==1237) { System.exit(0); }else { dijian(n/2); } } //有返回值遞歸 public static int sum(int num) { if (num > 1) { return num + sum(num - 1); } else { return 1; } } }