猴子吃桃子
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
输入
N
输出
桃子总数
样例输入
10
样例输出
1534
首先我们先确定有什么解法:
第一:规律 我们可以发现 小猴子除了最后一天外,它每一天打开篮子时剩下桃子都是他前一天的两倍 再 加一个 即: 2*(前一天+1)
那么 我们就可以用简单的循环来解决此问题。
那么有代码:
import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(),num = 1; //num代表桃子数,初始化为1 ,即最后一天的桃子不在公式里 for(;n>1;n--) //如果n>1的话 那么我们循环 一共循环n-1次,即:除了最后一天外,其他天都参与公式运算 { num = 2*(num+1); //每次桃子数(sum)都等于(前一天的桃子树+1)*2,当循环完毕,每次的sum都等于前一天的桃子数 } System.out.print(num); //最后输出桃子数 } }
这个是通过规律来求这个桃子的数量。