zoukankan      html  css  js  c++  java
  • 求n项阶乘之和并求出和的后六位

    #include <iostream>
    using namespace std;

    // 阶乘之和--每次求和时都调用一次阶乘函数
    int factorial(int n)
    {
      if (n < 0)
        printf("值为负数,不能计算!!! ");
      else if (n == 1)
        return 1;
      else
        return n * factorial(n - 1);
    }

    // 求阶乘的和
    void fac_sum(int n)
    {
      int sum = 0;
      if (n >= 30)
        n = 30; // 程序做健壮性处理:数的阶乘结果呈指数增长,所以数太大一是会产生溢出,二是因为大数的增长基本上不会影响尾数的变化
      for (int i = 1; i <= n; i++)
        sum += factorial(i);
      printf("前 %d 项和是 %d ", n,sum);
      if (sum / 10 == 0) // 个位
        printf("和 %d 的后六位为 00000%d ", sum, sum);
      else if (sum / 100 == 0) // 十位
        printf("和 %d 的后六位为 0000%d ", sum, sum);
      else if (sum / 1000 == 0) // 百位
        printf("和 %d 的后六位为 000%d ", sum, sum);
      else if (sum / 10000 == 0) // 千位
        printf("和 %d 的后六位为 00%d ", sum, sum);
      else if (sum / 100000 == 0) // 万位
        printf("和 %d 的后六位为 0%d ", sum, sum);
      else if (sum / 1000000 == 0) // 十万位
        printf("和 %d 的后六位为 %d ", sum, sum);
      else
        printf("和 %d 的后六位为 %d ", sum, sum % 1000000);
    }
    int main()
    {
      int n;
      while (true) {
        cin >> n;
        fac_sum(n);
        cout << endl;
      }
      return 1;
    }

    在本博客上的内容全部共享公开不收费 转载请注明出处,尊重知识,尊重劳动 对代码或者知识有疑问,可联系博主(qq):2218787597(或邮件投递)
  • 相关阅读:
    URL中参数为数组
    POST请求出现中文乱码的问题
    获取请求Requst中访问请求的客户端IP
    配置mybatis解决log4j未正常打印sql的问题
    C++ 数组、二维数组、函数参数
    C++ cin.clear()使用示例
    C++ 十进制转二进制 ASCII码大小写转换
    C++ 函数中返回字符串的一个陷阱
    充分条件、必要条件、充分必要条件
    binary search by Python3
  • 原文地址:https://www.cnblogs.com/TyranRex/p/12162381.html
Copyright © 2011-2022 走看看