注解 1、简单模拟。 2、该题其实就是求1/2+1/3+…+1/n的和,直到某个n时大于等于输入的数字,然后输出n-2就可以了。 代码 #include <iostream> using namespace std; int main() { double len; cin>>len; while(len){ double sum = 0; int i = 2; while(sum<len){ sum += 1.0/i++; } cout<<i-2<<" card(s)"<<endl; cin>>len; } return 0; } 结果