问题链接:POJ NOI0105-34 求阶乘的和

2684:求阶乘的和
总时间限制: 1000ms 内存限制: 65536kB
描述
给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+…+n!)

输入
输入有一行,包含一个正整数n(1 < n < 12)。
输出
输出有一行:阶乘的和。
样例输入
5
样例输出
153
来源
计算概论05

问题链接:Bailian2684 求阶乘的和
问题简述:(略)
问题分析
  原先的题解只是题解,不够透彻,参见参考链接。所以,这里重写题解。
  题目指定n<12,int类型可以存储下阶乘之和,不会产生数据溢出。如果n再大一些则需要用long long类型。更大的n则需要采用大数计算来解决。
解法一:循环处理
  循环处理是常见的做法,一个循环控制n项求和,另外一个循环控制阶乘计算。这种做法的缺点是重复的阶乘计算多,n越大则重复计算越多,影响计算速度。
解法二:函数
  把功能封装到函数,也是常见的做法。功能函数可以复用,工程项目中一般都要这样来做。然而,这种做法重复重复计算问题依旧存在。
解法三:迭代
  无重复计算,程序速度快的做法是采用迭代计算。也许本题用迭代计算来解决才是正解。
程序说明:(略)
参考链接:Bailian2684 POJ NOI0105-34 求阶乘的和【迭代】
题记:简单问题程序也蕴含解题密码。

AC的C语言程序(解法三:迭代)如下:

/* Bailian2684 求阶乘的和 */#include <stdio.h>int main(void)
{int n;scanf("%d", &n);int fact = 1, sum = 0, i;for (i = 1; i <= n; i++)fact *= i, sum += fact;printf("%d\n", sum);return 0;
}

AC的C++语言程序(解法二:函数)如下:

/* Bailian2684 求阶乘的和 */#include <stdio.h>int fact(int n)
{int fact = 1, i;for (i = 2; i <= n; i++)fact *= i;return fact;
}int main(void)
{int n;scanf("%d", &n);int sum = 0, i;for (i = 1; i <= n; i++)sum += fact(i);printf("%d\n", sum);return 0;
}

AC的C++语言程序(解法一:循环处理)如下:

/* Bailian2684 求阶乘的和 */#include <stdio.h>int main(void)
{int n;scanf("%d", &n);int sum = 0, i, j;for (i = 1; i <= n; i++) {int fact = 1;for (j = 2; j <= i; j++)fact *= j;sum += fact;}printf("%d\n", sum);return 0;
}

Bailian2684 求阶乘的和【迭代+函数+循环】(POJ NOI0105-34)相关推荐

  1. java循环求阶乘_在Java中用循环求阶乘

    阶乘指的是不断的与被递减的它本身相乘,每次递减1到1为止,比如3的阶乘用数学表达式是 3! ,此时它的结果等于 6. 那么如何用代码实现呢?我们可以用递归的办法,也可以用循环的办法.这里是用的循环的办 ...

  2. Bailian2684 POJ NOI0105-34 求阶乘的和【迭代】

    问题链接:POJ NOI0105-34 求阶乘的和. 问题链接:Bailian2684 求阶乘的和. 总时间限制: 1000ms 内存限制: 65536kB 描述 给定正整数n,求不大于n的正整数的阶 ...

  3. python求50的阶乘_python中求阶乘

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我如何去计算python中的一个整数的阶乘?... 写一个猜数字的游戏,预先设定 ...

  4. 开课吧Java课堂:如何使用迭代函数

    在通过迭代函数访问类集之前,必须得到一个迭代函数.每一个Collection类都提供一个iterator( )函数,该函数返回一个对类集头的迭代函数.通过使用这个迭代函数对象,可以访问类集中的每一个元 ...

  5. 编写函数求阶乘(完整版)

    一.编写函数 1.基础 //用函数编写 计算整数n的阶乘 #include<stdio.h>long Fact(int n); int main(void) {int m;//给出整数求阶 ...

  6. python阶乘匿名函数_python如何求阶乘

    python阶乘的方法:1.使用普通的for循环:2.使用[reduce()]函数,代码为[num = reduce(lambda x,y:x*y,range(1,7))]:3.使用[factoria ...

  7. mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...

    点击查看请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!具体信息 答:include "stdio.h" int fac(int k) { if(k==1) ...

  8. 4. linux调用文件计算阶乘前5项和_【题解循环】1091:求阶乘的和

    1091:求阶乘的和时间限制: 1000 ms    内存限制: 65536 KB [题目描述] 给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!),输出阶乘的和. [输 ...

  9. C语言大数阶乘取余,python中math模块常用函数介绍 取模(取余)取绝对值 求阶乘 求最大公约数最小公倍数 取对数 取根号 取幂(取次方) 取整函数 三角函数与反三角函数...

    前提:import math 两个常用常量 e = 2.718281828459045 pi = 3.141592653589793 >>> import math >> ...

最新文章

  1. oledb 获取所有表的名字和列名
  2. 对象属性的调用_PyQt5面向对象编程,类和类的继承
  3. 关于Asp.Net开发中导入外部JavaScript文件的问题
  4. Spring@Schedule定时任务源码解析
  5. 正则表达式的使用,python正则匹配一个话题标签
  6. eclipse中选中一个单词 其他相同的也被选中 怎么设置
  7. 半年工作经验今日头条和美团面试题面经分享
  8. Android系统联系人全特效实现(上),分组导航和挤压动画
  9. mongodb objectid java_我可以确定字符串是否是MongoDB ObjectID吗?
  10. FCKeditor在线编辑器的使用
  11. Git服务器的搭建和使用
  12. Samba共享目录的多用户权限设置案例
  13. 如何在 MacBook 上使用低电量模式和高电量模式?
  14. PHP学习笔记08——GD绘图基础
  15. C语言程序设计(第三版)何钦铭著 习题4-11
  16. RHCSA-Day1 --- Linux介绍及环境搭建
  17. 5G网络能力开放的“接头人“——NEF
  18. java ppt转图片 失真_java转换ppt,ppt转成图片,获取备注,获取文本
  19. struck的用法c语言,求struck结构体定义和赋值的具体讲解
  20. 语料标注平台BRAT安装说明

热门文章

  1. linux 命令大全_linux命令大全
  2. 30 分钟学会 Flex 布局
  3. Cocos Creator 使用 Android Studio 打包 APK 遇到的坑
  4. Cocos Creator 你不知道的细节
  5. CentOS7通过yum安装Openresty
  6. 原生html使用element组件,使用element-ui的table组件时,渲染为html格式
  7. c语言字符全排列数组,使用c语言递归实现字符串的全排列
  8. arm与linux些许问题,arm-linux中遇到的问题
  9. oracle回滚断查询,Oracle回滚段使用查询代码详解
  10. 不同角色给rules重新赋值校验规则