C语言一到十的阶乘的和怎么编程?

C语言一到十的阶乘的和怎么编程?,第1张

C语言一到十的阶乘编程方法:

1.记一个变量sum=0,用于累加。

2.记一个变量fact=1,用于累乘。

3.定义i从1到10循环。

4.每次循环将i累乘至fact,即fact=fact*i// fact此时等于i的阶乘,类似于6!=5!*6。

5.每次循环将fact累加至sum,即sum=sum+fact//sum此时就是1到i的阶乘的和。

程序最后,将sum输出,就是你要的结果了。

要学会编程,一定要有自己的思路。直接给你代码,但是你还是不知其所以然的话,等于没用。

如果我没理解错的话,你现在要做的是计算1!+2!+3!+...+10!

这个世界上,绝大多数的程序,都是可以手算出来的,区别在于花费的时间不同。像这种只要完成九年义务教育就可以做出来的数学题,我现在让你手算,你也能很快算出来。

总结如下:

那现在,如果让你试着手算一下,会发现,你其实并不会呆板地去死算,你会偷懒走捷径。

比如,你在计算完5!之后,再去计算6!的时候,你就不会从头从1一直乘到6了,而是直接用已经算过的5!乘以6就可以了。

然后等你把1!到10!全算出来的话,其实也只是做了9次乘法而已,剩下的,就只要再做9次加法就好了。所以这个程序的本质就是累乘和累加。

在普通程序设计语言中实现累乘的算法是完全一样的。首先累乘器变量要赋初值为1,循环控制变量要赋初始值,然后循环进行,循环体中累乘器变量乘以循环控制变量完成以后,循环控制变量的值增1,直到超过累乘范围时循环结束。

以计算n的阶乘为例,

f=1

i=1

while(i<=n)

f*=i++

#include <stdio.h>

long fact(int n) //递归函数求解阶乘

{

if(n<0)//输入数据检测

{

printf("输入数据n应>=0!\n")

return -1

}

if(n<=1) //0!=1,1!=1

return 1

else

return (n*fact(n-1))//递归调用

}

int main(int argc, char *argv[])

{

printf("5!=%ld\n",fact(10))//打印5!

return 0

}

c语言中,函数Func(Type a,……)直接或间接调用函数自身,则该函数称为递归函数。递归函数必须满足两个条件,

1、每一次调用函数自身都更接近于解;

2、函数 必须有一个明确的终止处理或计算的准则,比如本例中0!=1,1!=1。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12194951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存