求和
- 一位法官因蔑视罪传讯一个城市并命令第一天缴纳罚金2美元,以后每天的罚金都要将上一天的罚金数额平方,直到该城市服从法官的命令为止,(罚金上升如下:2,4,16,65536,…)。
- A:在第N天罚金将是多少?
- B:使罚金达到D美元,需要多少天?
public class SumTest {
public static void main(String[] args) {
//假设第n达到 65536美元
double money = 65536.0+2.0+4.0+16.0+256.0;
System.out.println("上缴金额总和:"+money);
//记录第n天的和
int sum = 2;
int count = 0;
double sumMoney = 0;
for(int n=1;n<10;n++) {
sumMoney = sumMoney+sum;
sum = (int) ( Math.pow(sum, 2)); //第n天的钱数是前一天的平方(第N天的罚金)
if(money == sumMoney) {
count = n;
break;
}
}
System.out.println("在第"+count+"天之后需要上缴罚金"+sumMoney+"美元");
}
}