程序运行过程中数据的益出问题

来源:互联网 发布:阿里云注销 编辑:程序博客网 时间:2024/05/01 16:08

例题

已知不等式 1!+2!+3!+...+m!‹n,请编程对用户指定的n值计算并输出满足该不等式的m的整数解。


输入
输入一个整数n,n为int范围内的正整型。


输出
输出m的取值范围,具体格式见输出样例。


样例输入
2000000000


样例输出
m<=12


提示


注意计算过程中的类型溢出问题




来源






#include <iostream>
#include<math.h>
using namespace std;
int main()
{
   long long n,b=0,m=1,i;                    //若变量b定义为整形,这若n为最大的整形数据,则b一定溢出,则会变为随机                                                                                     数   ,从而导致结果的出错        
    cin>>n;
    for(i=1;;i++)
    {
        m=m*i;
        b=b+m;
        if(b>=n)
            break;
    }
    cout<<"m<="<<i-1<<endl;
    return 0;

}

0 0
原创粉丝点击