c#部分---递归题目;猴子摘桃

//猴子摘了好多好多桃子,一天需要吃掉总数的2/3,
//觉得不过瘾,还得再多吃一个
//吃到第9天的时候,发现只有2个桃子了
//问,当初猴子摘了多少桃子

 class Program
    {

        public int taozi(int n)
        {
            int sum;
            if (n == 9)
            {

                return 2;
            }
            sum = 3 * (taozi(n + 1) + 1);
            return sum;
        }
    

初始化,输出

  // Program hanshu = new Program();
           //double aa= hanshu.taozi(1);
           //Console.Write(aa); 
时间: 2024-10-13 23:25:40

c#部分---递归题目;猴子摘桃的相关文章

ocrosoft 程序设计提高期末复习问题M 递归求猴子吃桃

http://acm.ocrosoft.com/problem.php?cid=1172&pid=12 题目描述 猴子吃桃问题.猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第2天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半另加一个.到第n天早上想再吃时,就只剩下一个桃子了.求第1天共摘了多少个桃子 输入 n的值 输出 剩下的桃子数量 样例输入 10 样例输出 total=1534 题解:运用递归的思想,定义的A的函数代表的是第n天开始的时候所有

PHP递归题目

$arr = [ 'a' => 'A', 'b' => 'B', 'c' => [ 'd'=> 'D', 'e'=>[ 'f'=>'F', 'g'=>['h'=>'H'] ] ] ]; //创建一个数组处理函数 function changeCase($var,$type = CASE_UPPER){ $var = array_change_key_case($var,$type); foreach($var as $key => $value){ i

猴子摘桃

问题描述: 一只猴子摘桃子,摘累了,决定休息一下再分桃子.过了一会,来了一只猴子,把所有桃子均分成了5份,结果多了1个,就把多出的吃了,然后拿走了其中的一份:过了一会,又来了一只猴子,它并不知道前面已经有猴子来过了,也把所有桃子均分成了5分,结果多了1个,就把多出的吃了,然后拿走了其中的一份:后面的第3.4.5只猴子也是同样的道理,分5份,吃一个,拿走一份.问这堆桃子最初总共至少有几个?最后又会剩几个? 问题解析: 第一只:5A1 + 1: 第二只:5A2 + 1 = 4A1: 第三只:5A3

猴子摘桃的算法

//有一只猴子摘了一堆桃子,当即吃了一半,可是桃子太好吃了,它又多吃了一个,第二天它把第一天剩下的桃子吃了一半,又多吃了一个,就这样到第十天早上它只剩下一个桃子了,问它一共摘了多少个桃子? //方法1 function taozi($i){ if($i==10) { return 1; } $i=(taozi($i+1)+1)*2; return $i; } echo "一共桃子有",taozi(1); echo '<hr/>'; //方法2 $a=1; for($i=10

C#递归题目代码

一列数的规则如下: 1.1.2.3.5.8.13.21.34...... 求第30位数是多少, 用递归算法实现. 代码: public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i <= 0) return 0; else if(i > 0 && i <= 2) return 1; else r

经典的猴子吃桃问题,C语言算法,根据天数和当日桃子个数,求第一天猴子所摘桃的个数,

#include<stdio.h> #include<stdlib.h> int tao_m(int a,int m) { int day[10]; int i; day[a-1] = m; for (i = a-2; i >= 0; i--) { day[i] = 2 * (day[i + 1] + 1); } return (day[0]); }   int main() { int d, m; printf("请输入今天是是猴子摘桃后的第几天:");

【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组

描述:  编写一个函数,传入一个int型数组,返回该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,返回true:不满足时返回false. 知识点: 语言基础,字符串,循环,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归    题目来源: 内部整理  练习阶段: 初级  运行时间限制: 10Sec 内存限制: 128MByte 输入: 输入输入的数据个数 输入一个int型数组 输出: 返

codevs http://www.codevs.cn/problem/?problemset_id=1 循环、递归、stl复习题

12.10高一练习题 1.要求: 这周回顾复习的内容是循环.递归.stl. 不要因为题目简单就放弃不做,现在就是练习基础. 2.练习题: (1)循环   题目解析与代码见随笔分类  NOI题库 http://noi.openjudge.cn/ch0106/    10-15题 http://noi.openjudge.cn/ch0105/     37-45题 http://noi.openjudge.cn/ch0107/     28-35题 (2)递归   题目解析与代码见随笔分类 递归 h

递归递归

http://blog.csdn.net/hacker00011000/article/details/51218926 裴波纳契数列 1.1.2.3.5.8.13.21.34-- f1=1.f2=1. f(n)=f(n-1)+f(n-2)(n>2) 求阶乘的递归 int f(int n)   {       if (n==0 || n==1)           return 1;      else           return n*fun(n-1);   } 汉塔诺问题 strlen递