传说古代某国家有这么一个规定:出征的士兵第一次受伤发给抚恤金1个钱币,第二次受伤发给抚恤金2个钱币,第三次受伤发给抚恤金4个钱币,依次类推。最后战争结束,有个战士共得到65535个钱币,请编程计算出该士兵共负伤多少次。
目前的已知条件有,最终的钱币数,可以知道这是累加的结果,同时还知道每次发放的钱币数量的规律:都是前一次的二倍,或者说是受伤n次,则第n次发放2的n-1次方个。
知道了这个规律就可以大体确定while循环的逻辑,在循环外需要定义一个变量用于记录累加的总钱币sum,一个变量用于记录负伤次数n,一个变量用于记录每次发放的钱币变化m。
在循环中需要做的事情就是,对n++,将m变为原来的2倍,再将m累加到sum上,终止条件就是总钱币,根据逻辑合理的指定执行顺序。
有帮助请采纳,还有不懂的可以继续追问~