问题 填空题

下列程序在输入m后,求满足条件“n!<=m<=(n+1)!”的值n,请将程序补充完整。 #include <iostream> using namespace std; int main() { int n,m, jc = 1; cin>>m; for(n=2;jc<=m;n++)jc = jc*n; cout<<"n="<< 【6】 <<end1; return 0; }

答案

参考答案:(n-2)

解析: 研究本题中包含的语句“jc<=m;”和“jc=jc*n:”,可发现本题是通过求出“n!”的值jc并检查该值是否大于m;如果小于等于,继续循环求出“(n+1)!”直到jc>m。跳出循环后,得到n的值并输出。题中要填出n的输出值,但应注意:如果直接填n,是错误的。因为在循环语句中先求出jc=jc*n,如果这时的jc>m,循环还没结束,n的值就比要求的值大1,结束循环后,执行n++后,再判断jc<=m,所以n的值比所求的大2,故应填入n-2。

填空题
问答题 简答题