
C语言 - 计算n的阶乘(n!)
发布日期:2021-05-07 10:11:55
浏览次数:11
分类:原创文章
本文共 851 字,大约阅读时间需要 2 分钟。
一、
4! = 1 * 2 * 3 * 4
5! = 1 * 2 * 3 * 4 * 5
#include<stdio.h>#pragma warning:(disable:4996)int main(){ int i = 0; int ret = 1; int n = 0; scanf("%d", &n); for(i=1; i<=n; i++) { ret *= n;//累计相乘 } printf("%d\n", ret); return 0;}
二、
1! + 2! +3! + …
//思路://1 +//1*2 +//1*2*3 +//... ...#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int i = 0; int j = 0; int ret = 1; int sum = 0; int n = 0; scanf("%d", &n); for(i=1; i<=n; i++) { ret = 1;//在求下一个阶乘时重新赋值,避免把上一阶乘的值与下一阶乘的值重复相乘 for(j=1; j<=i; j++) { ret *= j; sum += ret; } } printf("%d\n", sum); return 0;}
上面这种写法时间复杂度高,效率低。优化如下:
//思路://1*1 = 1!//1!*2 = 2!//2!*3 = 3!//... ...#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int i = 0; int ret = 1; int sum = 0; int n = 0; scanf("%d", &n); for(i=1;i<=n;i++) { ret *= i; sum += ret; } return 0;}
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月12日 10时17分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
(2019.6.27)Anaconda清华镜像已恢复使用
2019-03-04
Robomongo使用教程:踩着前辈的路
2019-03-04
Python中Class类与def函数的区别
2019-03-04
OpenAI Gym简介及初级实例
2019-03-04
用Matplotlib和Gym优雅地呈现股票交易智体
2019-03-04
Github上量化交易相关项目汇总
2019-03-04
JS取出两个数组中的不同或相同元素
2019-03-04
Ubuntu 18.04 zip压缩文件及其文件 夹中的所以 内容
2019-03-04
MFC:pic控件的矩形的left、right、top、bottom 坐标位置
2019-03-04
mfc 中在对Gdi+ 进行配置之后,编译产生很多error错误
2019-03-04
int 转 CString
2019-03-04
Edit编辑框自动换行与长度
2019-03-04
如何在Windows上搭建NFS服务器实现开发板与Windows之间的文件共享
2019-03-04
英语02_单词词性
2019-03-04
C语言08_数组[ Array ]
2019-03-04
C语言12_预处理 #
2019-03-04
低通滤波器的设计
2019-03-04
窄带随机过程的产生
2019-03-04
随机四则运算
2019-03-04