实验10

您所在的位置:网站首页 python递归求阶乘和 实验10

实验10

#实验10| 来源: 网络整理| 查看: 265

本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+...+n! 的值。

函数接口定义: double fact( int n ); double factsum( int n );

函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+...+n! 的值。题目保证输入输出在双精度范围内。

裁判测试程序样例: #include double fact( int n ); double factsum( int n ); int main() { int n; scanf("%d",&n); printf("fact(%d) = %.0f\n", n, fact(n)); printf("sum = %.0f\n", factsum(n)); return 0; } /* 你的代码将被嵌在这里 */ 输入样例1: 10 输出样例1: fact(10) = 3628800 sum = 4037913 输入样例2: 0 输出样例2: fact(0) = 1 sum = 0

 python代码如下:

sum = 0 n = int(input()) for i in range(1,n+1): #外层的大循环,从1到n num = 1 #内层循环前先把num置1,否则上轮循环的数还在num里 for j in range(1,i+1): #内层的小循环从1到i+1,j分别是1,2,3,4……乘在一起 num = num * j if i == j: #如果i==j,说明这个数的阶乘求出来了,那么加入到sum里 sum += num if n == j: #如果n==j,说明找到用户输入的数的阶乘,那么输出 print("fact({}) = {}".format(n,num)) print("sum = {}".format(sum))



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3