《算法笔记》codeup

    技术2023-04-04  90

    思路:

    一块:只有“吃一块”一种方案。

    两块:“两天各吃一块”和“一天吃两块”两种方案。

    三块:如果第一天吃一块,则第二天开始回到共有两块的情况;如果第一天吃两块,则第二天回到共有一块的情况。

    N块:如果第一天吃一块,则第二天开始回到共有N-1块的情况;如果第一天吃两块,则第二天回到共有N-2块的情况。

    解答:

    #include <cstdio> using namespace std; int get_plan_num(int choco_num) { if(choco_num == 1) return 1; else if(choco_num == 2) return 2; int plan_num = 0; plan_num = get_plan_num(choco_num - 1) + get_plan_num(choco_num - 2); return plan_num; } int main() { int choco_num; while(scanf("%d", &choco_num) != EOF) { printf("%d\n", get_plan_num(choco_num)); } return 0; }

     

    Processed: 0.025, SQL: 10