下列程序在输入m后,求满足条件“n!<=m<=(n+1)!”的值n,请将程序补充完整。 #include <iostream> using namespace std; int main() { int n,m, jc

admin2009-02-15  29

问题 下列程序在输入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="<<【  】<<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。
转载请注明原文地址:https://kaotiyun.com/show/G7kp777K
0

最新回复(0)