老闆發獎金--niuke
阿新 • • 發佈:2022-03-19
老闆一共需要給某個員工發獎金n元,可以選擇一次發1元,也可以選擇一次發2元,也可以選擇一次發3元。請問老闆給這位員工發放完n元獎金共有多少種不同的方法?
資料範圍:1 <= n <= 10
import java.util.Scanner; public class GiveMoney { public static void main(String[] args) { Scanner scanner = new Scanner (System.in); System.out.print ("輸入要發的獎金:"); int number = scanner.nextInt (); System.out.println ("您有" + f (number) + "種方法發完" + number + "元獎金!!"); } /** * 獲取 發獎金可用的總方法 的方法 * * @param number 要發的錢數 * @return 總方法數 */ public static int f(Integer number) { //設定遞迴出口 if(number==1) { return 1; } //設定計數器,因為都會有全部還錢的情況 int count = 0; /** * 1:先發1塊的情況下,剩下4塊是不是就和發4塊的方法一樣了? 2:先發2塊的情況下,剩下3塊是不是就和發3塊的方法一樣了? 3:先發3塊的情況下,剩下2塊是不是就和發2塊的方法一樣了? 4:先發4塊的情況下,剩下1塊是不是就和發1塊的方法一樣了? 5:5塊一次性發完,唯一方法 */ //f(5) = f(4)+f(f3)+(f2)+(f1)+1 for(int i = number - 1 ;i >0 ;i--) { count = f(i) + count; } return count + 1; } }