小明买了一堆桃子,不知道个数,第一天吃了一半的桃子,还不过瘾,又多吃了一个。以后他每天吃剩下的桃子的一半还多一个,到n天只剩下一个桃子了。问:最开始买了多少桃子。(使用Java实现)

简介: 小明买了一堆桃子,不知道个数,第一天吃了一半的桃子,还不过瘾,又多吃了一个。以后他每天吃剩下的桃子的一半还多一个,到n天只剩下一个桃子了。问:最开始买了多少桃子。(使用Java实现)

小明买了一堆桃子,不知道个数,第一天吃了一半的桃子,还不过瘾,又多吃了一个。以后他每天吃剩下的桃子的一半还多一个,到n天只剩下一个桃子了。问:最开始买了多少桃子。

输入格式:输入一个整数n ,2<= n<=3
输出格式:输出买的桃子的数量

分析题目:

天数是自定义的,我们需要计算初始桃子的数量,分析题目我们可得,桃子每天减少的数量都是前一天的一半+1,由此我们可以使用递归

代码实现:

import java.util.Scanner;
public class test11 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        //n为天数
        int n=scanner.nextInt();
        //1为最后一天桃子的数量,也就是我们输入的这一天的桃子数量
        System.out.println(getsum(n,1));
    }
    public static int getsum(int x,int m){
        if(x==1){//当天数递减到1时,我们也就得到了初始桃子的数量
            return m;
        }else{
           return getsum(x-1,(m+1)*2);//注意:我们是根据天数求桃子数量,相当于是逆推的过程,因此,天数是递减的,而桃子的数量是递增的
        }
    }
}

输出:

3
10
相关文章
|
3月前
|
存储 Java
用java实现堆
用java实现堆
29 5
|
3月前
|
存储 算法 Java
[Java]散列表的数据结构以及对象在JVM堆中的存储过程
[Java]散列表的数据结构以及对象在JVM堆中的存储过程
54 1
[Java]散列表的数据结构以及对象在JVM堆中的存储过程
|
5月前
|
存储 Java 编译器
【面试知识】Java内存分配之常量池、堆、栈
【面试知识】Java内存分配之常量池、堆、栈
|
2月前
|
存储 安全 Java
【JVM】Java堆 :深入理解内存中的对象世界
【JVM】Java堆 :深入理解内存中的对象世界
56 0
|
4月前
|
Java 调度
Java优先队列(堆)理解和使用
Java优先队列(堆)理解和使用
45 0
|
9月前
|
存储 Java 程序员
深度理解JAVA中的栈、堆、对象、方法区、类和他们之间的关系
1.方法:当一个方法执行时,该方法都会建立自己的内存栈,在该方法内定义的变量将会逐个放入内存栈中,随着方法执行结束,该方法的内存栈也将自然销毁.因此,所有在方法中定义的局部变量都是放在栈内存中的。
152 0
深度理解JAVA中的栈、堆、对象、方法区、类和他们之间的关系
|
6月前
|
存储 Java BI
MAT工具定位分析Java堆内存泄漏问题方法
MAT,全称Memory Analysis Tools,是一款分析Java堆内存的工具,可以快速定位到堆内泄漏问题。该工具提供了两种使用方式,一种是插件版,可以安装到Eclipse使用,另一种是独立版,可以直接解压使用。
51 0
|
7月前
|
存储 算法 Java
数据结构——堆、堆排序和优先级队列(代码为Java版本)
数据结构——堆、堆排序和优先级队列(代码为Java版本)
|
7月前
|
Java 程序员 API
Java语言特点 && 8种基本数据类型 && 标识符等练习题 && 插入/希尔/选择/堆/冒泡/快速/归并/计数排序
Java语言特点 && 8种基本数据类型 && 标识符等练习题 && 插入/希尔/选择/堆/冒泡/快速/归并/计数排序
32 0
|
9月前
|
缓存 算法 Java
java学会这些,我就入门啦!(基础篇一)栈与堆
java学会这些,我就入门啦!(基础篇一)栈与堆