求阶乘及阶乘和

 1 #求阶乘方法一
 2 def f1(n)
 3   if n == 1
 4     return 1
 5   else
 6     return n * f1(n-1)
 7   end
 8 end
 9
10 #求阶乘方法二
11 def f2(n)
12   i = 1
13   while n > 0
14     i *= n
15     n -= 1
16   end
17   return i
18 end
19
20 #求1到n的阶乘之和方法一
21 sum = 0
22 (1..43).each do | x |
23   sum = sum + f2(x)
24 end
25 puts sum
26
27 #求1到n的阶乘之和方法二
28 def f3(n)
29   sum = 0
30   n.downto(1) do
31     while n > 0
32       i = 1
33       i *= n
34       n -= 1
35       sum *= i
36       sum += i
37     end
38   end
39   return sum
40 end
41 puts f3(43)
42
43  
时间: 2024-08-06 07:28:57

求阶乘及阶乘和的相关文章

汇编语言-求X的阶乘

1. 题目:求X的阶乘值 2. 要求:输入一个整型数(不超过10),求出其阶乘值后输出,求阶乘的算法用子程序来实现. 3. 提示:可以用递归来实现,也可以用简单的循环来实现. 这里使用循环来实现: 对于汇编新手,最好通过高级语言的编程测试,然后再写汇编代码,这样效果会好一些. 求阶乘的C++代码如下: 1 //The program is to find the factorial from 1 to 10 2 //author:Karllen 3 //Date: 05/21/2014 4 5

求n的阶乘以及前n个数的阶乘和

//求n的阶乘 #include<stdio.h> #include<stdlib.h> int main() { int n = 0; int sum = 1; scanf( "%d", &n); while (n)                             //n如果为零,则不进入循环体,输出的sum初始值就是1 { sum *=n; n--; } printf( "%d\n", sum); system( &quo

求一个数阶乘的位数

flyfish 2015-8-15 例如 7!=5040 ,7的阶乘结果是4位数(10进制) 求一个数的位数 1 循环方法 int get_digit_loop(int N) { int digit = 0; do { digit ++; } while ((N /= 10) > 0); return digit; } 2 递归方式 int get_digit_recursion(int N) { int digit = 0; digit = N < 10 ? 1 : 1 + get_digi

求一个数阶乘后位数问题

问题:In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine the number of digits in the fa

大数问题:求n的阶乘

题目:求100! 这看起来是一个非常简答的问题,递归解之毫无压力 int func(int n){ if(n <= 1) return 1; else return n*func(n-1); } 但你会发现,题目真的有这么简单吗,考虑整形数据越界没有? 这实际上是一个大数问题! 大数怎么表示呢,非常直接的.我们会想到用字符串来表示.但表示的过程中还得做阶乘运算.是不是想象的那么复杂呢? 事实上.用主要的乘法运算思想(从个位到高位逐位相乘,进位)来考虑,将暂时结果的每位与阶乘元素相乘.向高位进位.

2717: 递归函数求n的阶乘

2717: 递归函数求n的阶乘 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1329  Solved: 942[Submit][Status][Web Board] Description 输入一个正整数n,利用递归函数求n的阶乘. 递归函数声明如下: int  fac(int n);  //求n!的递归函数声明 Input 一个正整数n Output n的阶乘值 Sample Input 5 Sample Output 120 HINT 使用递

两种方式实现求n的阶乘

# 通过递归实现求n的阶乘 def my_test(n): if n is 0: return 1 else: return n*my_test(n-1) print(my_test(5)) >> 120 # 通过普通循环实现求n的阶乘 def my_test2(n): result = n for i in range(1,n): result *= i return result print(my_test2(5)) >> 120 原文地址:http://blog.51cto.

递归和非递归分别实现求n的阶乘

思路:举例求6的阶乘,6*5*4*3*2*1.可以将5开始看成另一个整型变量n,用一个循环每次将n的值减少1,.而递归也是如此,每次调用函数的时候将变量减一就可以. 方法一:非递归 1 //非递归: 2 #include<stdio.h> 3 int main() 4 { 5 int num = 1; 6 printf("请输入数字:\n"); 7 scanf("%d",&num); 8 int n = num - 1; 9 while (n &

用递归函数求n的阶乘及斐波那契数列中的第n个数的值

题目要求:使用递归函数求n的阶乘及斐波那契数列中第n项的值. 1.求n的阶乘: 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1. 计算公式为n!=1×2×3×...×n:递推公式可写作n!=n×(n-1)! 于是有: def fact(n): if n==1: return 1 return n*fact(n-1) n=int(input("请输入一个正整数:"))print(fact(n)) 2.求斐波那契数列中第n项的值: 形如1.1.2.

递归--求n!的阶乘结果

递归的基本概念? 一个函数调用其自身,就是递归? 求n!的递归函数 通过函数递归的方式实现求函数的阶乘. Python代码如下: #求阶乘 def Factorial(n): if (n == 1): return 1 else: return n * Factorial(n-1) def main(): n = int(input("请输入需要计算的阶乘数值:")) rtn = Factorial(n) print("数值%d阶乘的计算结果为:%d" %(n,rt