阶乘问题
题目:输入两个数字a,b,如果a>b则计算b!+...a!否则(a=b或者a<b时,不能连加)继续输入数字。如(4,3则输出4!+3!=30)
解决方法:
方法一:使用python语言解决
1 def d(): 2 a=input("请输入一个数字:") 3 b=input("请再输入一个数字:") 4 a=int(a) 5 b=int(b) 6 def f(n): 7 sumab=1 8 for i in range(1,n+1): 9 sumab*=i 10 return sumab 11 if(a>b): 12 s=0 13 for i in range(b,a+1): 14 s+=f(i) 15 print("连加和是%d"%s) 16 else: 17 print("不能连加!") 18 d() 19 d()
方法二:使用C语言解决
1 #include<stdio.h> 2 int f(int n) 3 { 4 int i=1,c=1; 5 for(i;i<=n;i++) 6 { 7 c*=i; 8 } 9 return c; 10 } 11 void d() 12 { 13 int i,j; 14 int sumab=0; 15 printf("请输入两个数字:\n"); 16 scanf("%d%d",&i,&j); 17 if(i>j) 18 { 19 for(;j<=i;j++) 20 { 21 sumab+=f(j); 22 } 23 printf("连加和为:%d\n",sumab); 24 } 25 else 26 { 27 printf("不能连加!\n"); 28 d(); 29 } 30 } 31 void main() 32 { 33 d(); 34 }
注解:以上两个方法都没有对输入的数字进行判断和过滤,读者可以自行添加相应的方法。