博客
关于我
C语言 - 计算n的阶乘(n!)
阅读量:330 次
发布时间:2019-03-04

本文共 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;}

转载地址:http://iqbe.baihongyu.com/

你可能感兴趣的文章
XML:采用XHTML和CSS设计可重用可换肤的WEB站点
查看>>
U盘“无法识别的USB设备”解决办法
查看>>
4-6 在Vue中使用插槽
查看>>
十二、 PHP (PDO)操作数据库
查看>>
二叉树 简单实现 问题解决
查看>>
第2章 可行性研究
查看>>
python入门——运算符
查看>>
less简介、less安装、编译、less语法之变量、嵌套、类混入、函数混入、运算、less文件导入
查看>>
【springmvc】传值的几种方式&&postman接口测试
查看>>
泳道图简介
查看>>
Tomcat6中web项目部署路径webapps和wtpwebapps的区别
查看>>
Java判断字符串是否为金额
查看>>
CodeCombat代码全记录(Python学习利器)--安息之云山峰(第四章)代码9
查看>>
nginx配置文件nginx.conf详细讲解(2)
查看>>
nginx配置文件nginx.conf详细讲解(4)--终结篇
查看>>
某公司运维岗位笔试题8
查看>>
一个简单的shell脚本:weblogic日志按天生成(日志压缩)
查看>>
skyfans之每天一个Liunx命令系列之二:uptime
查看>>
js中的文档碎片的理解与使用
查看>>
Kubernetes十三--Pod定义文件内容详解
查看>>