JAVA常见算法题(十六)

package com.xiaowu.demo;

//猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;
//第二天早上又将剩下的桃子吃掉一半,而且又多吃了一个。
//以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩下一个桃子了。求第一天共摘了多少个桃子。
public class Demo16 {
    public static void main(String[] args) {
        int sum = peach(1);
        System.out.println("第一天共摘了" + sum + "个桃子");
    }

    public static int peach(int day) {
        if (day == 10) {
            return 1;
        } else {
            return (peach(day + 1) + 1) * 2;
        }

    }
}
时间: 2024-12-25 19:50:26

JAVA常见算法题(十六)的相关文章

JAVA常见算法题(十五)

package com.xiaowu.demo; /** * * 输入三个整数x,y,z,请把这三个数由小到大输出. * * @author WQ * */ public class Demo15 { public static void main(String[] args) { sort(15, 10, 5); } //定义临时变量进行数字的移位操作 public static void sort(int x, int y, int z) { if (x > y) { int t = x;

JAVA常见算法题(十八)

package com.xiaowu.demo; /** * 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人,以抽签决定比赛名单. 有人向队员打听比赛的名单:a说他不和x比,c说他不和x. * z比.请编程序找出三队赛手的名单. * * @author WQ * */ public class Demo18 { public static void main(String[] args) { vs(); } public static void vs() { char

JAVA常见算法题(十四)

package com.xiaowu.demo; /** * 输入某年某月某日,判断这一天是这一年的第几天? * * * @author WQ * */ public class Demo14 { public static void main(String[] args) { year(2017, 6, 5); } /** * * 平年2月28天,闰年2月29天. * 年份数(末两位不是00)能被4整除的是闰年(如1988.1996).年份数(末两位数是00的)能被400整除是也是闰年(如20

JAVA常见算法题(十九)

package com.xiaowu.demo; /** * * 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和. * * * @author WQ * */ public class Demo19 { public static void main(String[] args) { sum(20); } public static void sum(int n) { double x = 2.0; double y = 1.0; double

JAVA常见算法题(二十八)

package com.forezp.util; import java.util.Arrays; /** * 两个int数组,都是从小到大的的排列,请合并为一个新的数组,也是从小到到大的排列, * 请写出性能最优的算法.<br> * * * * @author Administrator * */ public class ArrayDemo1 { public static void main(String[] args) { int[] a = { 1,3,5,7,9}; int[] b

JAVA常见算法题(二十九)

package com.forezp.util; import java.util.Scanner; /** * 判断输入的5个字符串的最大长度,并输出 * * * @author Administrator * */ public class StringDemo{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String[] str =new String[5]; for(int x

JAVA常见算法题(三十)

package com.forezp.util; import java.io.BufferedReader; import java.io.FileReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; /** * 一个文本中包含多行字符串,输入长度最长的字符串和最短的字符串<br> * * @author Administrator * */ pu

JAVA常见算法题(二十)

package com.xiaowu.demo; /** * * 打印出如下图案(菱形) * * * * @author WQ * */ public class Demo20 { public static void main(String[] args) { display(5); } public static void display(int h) { for (int i = 0; i < (h + 1) / 2; i++) { for (int j = 0; j < h / 2 -

JAVA常见算法题(二十四)

package com.xiaowu.demo; //一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. public class Demo24 { public static void main(String[] args) { f2(123454321); } // 方法一 public static void f1(int n) { if (n >= 10000 && n < 100000) { String s = String.va