zoukankan      html  css  js  c++  java
  • 阶乘之和

    输入 n ,计算 S = 1!+ 2!+ 3!+ ... +n!的末6位 (不含前导 0 )。n <= 1e6, n!表示前 n 个正整数之积。

    样例输入:

    10

    样例输出:

    37913

    代码如下

    #include<iostream>
    using namespace std;

    int main()
    {
        int num;            //存放数据
        int n;                //要输入的数
        
        while(cin>>n)        
        {
            int s = 0;
            
            for (int i = 1; i <= n; i++)        //小于 n 的整数
            {    
                num = 1;
                
                for (int j = 1; j <= i; j++)    //计算阶乘
                    num *= j;
                    
                s += num;                    //求和
            }
                
                
            
        //    cout<<s<<endl;
            cout<<(s % 1000000 )<<endl;        // 取余
        }
        return 0;
     }

    但是当我们输入的 n = 100 时,输出结果为-961703。直接告诉我们,乘法溢出了。

    **注:要计算只包含加法、减法和乘法的整数表达式除以正整数 n 的余数,可以在每步计算之后对 n 取余,结果不变。一个数对另一个数反复取余结果不变,即  a % b == a % b % b % b

    代码如下

    #include<iostream>
    using namespace std;

    int main()
    {
        int num;            
        int n;                
        
        while(cin>>n)        
        {
            int s = 0;
            
            for (int i = 1; i <= n; i++)        
            {    
                num = 1;
                
                for (int j = 1; j <= i; j++)    
                    num = num % 1000000 * j;
                    
                s = (s + num) % 1000000;                    
            }            
                
            cout<<s<<endl;    
        }
        return 0;
     }

    **注:当 n 从40开始,答案始终不变。因为 25!末尾有 6 个 0 ,所以后面的所有相都不会影响和的末位 6 位数————只需要在程序前面加一条语句 " if (n > 25)   n = 25; ",就可提高效率

  • 相关阅读:
    推荐前端开发使用的服务器环境开源项目 D2Server 可替代Apache
    JavaScript正则表达式的坑很深
    NodeJS + Sequelize + Mysql + Vue + Bootstrap
    wampserver使用过程中遇到的问题及相关配置
    生成解决方案时,无法导入以下密钥文件
    使用Image.GetThumbnailImage 方法返回缩略图
    C#操作xml文件进行增、删、改
    MessageBox.Show()时MessageBoxIcon的显示
    通过反射获取对象属性、属性的值,设置对象属性的值
    常用文档处理技巧
  • 原文地址:https://www.cnblogs.com/go-alltheway/p/13336019.html
Copyright © 2011-2022 走看看