猴子吃桃,一天吃所有桃子的一半,然后多吃一个,
假设days天后,桃子还剩nums个,求一开始的桃子数量
逆向思维,如果,第十天还剩1个,第九天就等于(1+1)*2个,第八天等于((第九天+1)*2)以此类推...
//所以我们需要的是从第10天到第1天,每一天的前一天的桃子数,10次计算后得到第一天的。
days是吃到还剩nums的桃子时候花费的天数,nums是最后剩下的数量
import java.util.Scanner;
public class Monkey {
public static void main(String[] args){
//猴子吃桃,一天吃所有桃子的一半,然后多吃一个,
//假设days天后,桃子还剩nums个,求一开始的桃子数量
//逆向思维,如果,第十天还剩1个,第九天就等于(1+1)*2个,第八天等于((第九天+1)*2)以此类推...
//所以我们需要的是从第10天到第1天,每一天的前一天的桃子数,10次计算后得到第一天的。
System.out.println("请输入最后剩下的桃子数量");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("请输入吃掉其他桃子所消耗的天数");
Scanner sc1 = new Scanner(System.in);
int b = sc1.nextInt();
M jisuan = new M();
System.out.println("计算结果为,第一天桃子数量:"+jisuan.m(b,a));
}
}
class M {
public int m(int days,int nums){
//days是吃到还剩nums的桃子时候花费的天数,nums是最后剩下的数量
for(int i=1;i<=days;i++)
{
nums=(1+nums)*2;
}
return nums;
}
}
我们平时见过最多的题目是10天吃的还剩1个桃子的题目
那我们分析的就是第10天剩下1个,第9天剩下4个.....最终结果3070个
不多说无论是从最后一天开始算还是中间一天算都是正确的