整个算法就是错的,n 初始化为1,在内层循环中执行语句n=n/2-1; 其结果是首先n=-0.5,并且一直执行到 i=9,内层结束,再跳出去,此时n已经是一个小数,再加1,还是小数,永远也不可能等于正数,更不可能等于1,不死循环才怪。并且还存在一个严重的不良编程习惯:不能用浮点数控制循环,尤其是相等,因为结果将是无法预测的。我想到了一种递归的算法,就是把第十天当第一天,依次回溯,第一天就是第十天,程序如下:#include <iostream>using namespace std;int peach(int d){//the number of peach of dth //dayif(d==1){ return 1;}//only one peach leftelse return (1+peach(d-1))*2 ; //the number of peaches //"today" ** ((half of next day)-1)}main(){cout<<peach(10);} 我在机器上运行了,结果是1534 20210311