POJ-2942:吃糖果
生活随笔
收集整理的這篇文章主要介紹了
POJ-2942:吃糖果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這題的關鍵是“媽媽告訴名名每天可以吃一塊或者兩塊巧克力”這一句,當然我說的這一句有廢話的嫌疑。
但是不可否認,這句話真的很重要。每天可以吃一塊或是兩塊,那么是不是就可以這樣地去一個假設,假設我在第i天的時候,吃到第j顆糖果,在第i+1天的時候,吃到了第j+1或是第j+2顆糖果。重點來了,那么,是不是就可以說我在第i天吃到第j顆糖果的吃巧克力的方案數目就是我在第i+1天的時候吃第j+1和吃j+2顆糖果的和。
可能你會問我為什么。那我這樣來問一個問題,我在第i+1天的時候只了1顆糖果,那么我剩下的假設有m顆糖果要k天吃完是不是和我在第i+1天的時候只了2顆糖果,那么我剩下的m-1顆糖果要n天吃完是兩種不同的方案?正是如此,所以我們就可以依次遞推。得到這一個算法段:
1.如果n是1,返回1;
2.如果n是2,返回2;
3.如果n是大于2的數,就返回一個n-1和n-2之和的值;
private static int getCount(int n) {if (n == 1) {return 1;} else if (n == 2) {return 2;} else {return getCount(n -1) + getCount(n- 2);}}
------------------------------------------------- AC CODE -----------------------------------------------
import java.util.Scanner;public class Main {private static int getCount(int n) {if (n == 1) {return 1;} else if (n == 2) {return 2;} else {return getCount(n -1) + getCount(n- 2);}}public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println(getCount(in.nextInt()));}}
總結
以上是生活随笔為你收集整理的POJ-2942:吃糖果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ-4004:数字组合(用位移方法解
- 下一篇: Android退出程序(一)——单例模式