猴子吃桃的非递归和递归方法

    xiaoxiao2021-04-17  273

    问题: 一只小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;第二天又吃了一半,再加上一个后面每天都是这样吃。到第10天的时候,小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子。 解题思路:(1)从第十天剩余一个桃子下手 有这个图就可以开始写函数了 1. #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<windows.h> int main() { int i = 1; int j = 1;; for (j=9; j >0; j–)//这个直接从第九天算起 { i = 2 * (i + 1);//由刚才那个图可以看出这个核心代码 } printf("%d",i); system(“pause”); return 0; 2.用递归写这个函数(因为能从这个题中,可以用大事化小的方法) #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<windows.h> int recursion(int n)//函数recursion(递归) { if (n == 1) return 1; else return (2*(recursion(n - 1) + 1));//先进后出,后进先出 } int main() { int n = 10; printf("%d",recursion(n)); system(“pause”); return 0; }


    最新回复(0)