问题 填空题

下列程序在输入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。

选择题
单项选择题