阶乘问题

题目:输入两个数字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 }

注解:以上两个方法都没有对输入的数字进行判断和过滤,读者可以自行添加相应的方法。

你可能感兴趣的:(问题)