一个百万富翁与一个陌生人间的换钱计划

一个百万富翁与一个陌生人间的换钱计划
一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你10 万元,你第一天给我1 分钱,第二天2 分钱,
第三天4 分钱……
计算这n天中,陌生人给了富翁多少钱,富翁给了陌生人多少钱.
【输入形式】输入天数n(0<=n<=30)
【输出形式】控制台输出.分行给出这n天中,陌生人所付出的钱和富翁所付出的钱.输出舍弃小数部分,取整.
【样例输入】30
【样例输出】3000000
1073741823


public static void main(String[] args) {
        Test test = new Test();
        int day = test.day();
        double f=0,q=0,a=0.01;
        for (int i = 1; i <= day; i++) {
            f += 100000;    // 富人每天加10万
            q += a;   // 后面每一天加的是前面的两倍
            a = 2*a;
        }
        System.out.println(day+"天后,富人给了"+f+"元,穷人给了"+q+"元");
    }

    public int day() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入天数");
        int day = 0;
        try {
            day = input.nextInt();
            if (day>=0 && day<=30) {
                return day;
            } else {
                System.out.println("必须在0-30天之内");
            }
        } catch (Exception e) {
            System.out.println("请输入数字");
        }
        return 0;
    }

public class Test4 {
public static void main(String[] args) {
money(30);
}

public static void money(int day){
    System.out.println(day*100000);
    System.out.println(BigDecimal.ONE.add(BigDecimal.ONE).pow(day).subtract(BigDecimal.ONE));
}

}


  private static void a1(int n){
        long fuhao = n * 100000;
        double qigai = 0.0;
        double s = 0.01;
        for(int i=1;i<=n;i++){
            qigai += s;
            s = s*2;
        }
        System.out.println("n = " + n + " , 富豪 = "+ fuhao + " ,乞丐 = " + (long)qigai);
    }