关于一个人抽多少根烟会挂的代码求证
程序代码:
import static java.lang.System.out; /** * * @author niyite * */ /** * 抽烟致死模型: * 1.假设人的寿命为变量life,80年,80*365*24*60*60秒 * 2.假设抽一根烟,短寿20秒,为变量time * 3.假设连续抽烟,短寿时间翻倍,就是20+20*2+20*4+20*8... * 4.假设让一个人连续抽烟,不能停下 5.假设连续抽烟到第n根,此人挂掉 */ public class SomgToDeath { static int n = 0; public static void main(String[] args) { long life = 80*365*24*3600L;// 生命的长度 int time = 20;// 抽一根烟减少的寿命长度 n = getN(life, time);// 连续抽烟n根,此人会挂 out.println("此人抽烟到第:" + n + "根会挂掉!"); } private static int getN(long life, int time) { long total = 0; for(;;){ total += time*(Math.pow(2, n)-1); if(total<life){ n++; continue; } break; } return n; } }
是的,你没看错,一个还能活80年的人只要连续抽烟26根就会挂!