今天学习了如何写出求阶乘的代码,我有所思考,并将此代码加以拓展:我该如何让他一次性求两个数的阶乘呢?
可能对于老手来说会很简单,但对于我这个初学者来说,不是很容易。
下面是我尝试的过程:
#include<stdio.h>
#include <cstdlib>
int b(int n);
int c(int m);
int main()
{
int n;
int m;
printf("请输入两个整数,中间用英文逗号隔开\n此程序用来同时计算两个整数的阶乘");
scanf("%d,%d",&n,&m);
printf("(1)%d,(2)%d",b(n),c(m));
system("pause");
return 0;
}
int b(int n)
{
int i,q=1;
for(i=1;i<=n;i++){
q=q*i;
}
return q;
}
int c(int m)
{
int i,p=1;
for(i=1;i<=m;i++){
p=p*i;
}
return p;
}
这是我第一个代码,确实是可以同时计算出两个数的阶乘了,但代码冗长,占用内存也稍大。
于是有了第二次尝试,既然都是算阶乘,那我可以将两个数用同一个公式计算。
#include<stdio.h>
#include <cstdlib>
int b(int n);
int main()
{
int n;
int m;
printf("请输入两个整数,中间用英文逗号隔开\n此程序用来同时计算两个整数的阶乘");
scanf("%d,%d",&n,&m);
printf("(1)%d,(2)%d",b(n),c(m));
system("pause");
return 0;
}
int b(int n)
{
int i,q=1;
for(i=1;i<=n;i++){
q=q*i;
}
return q;
}
这样子代码长度减少了,看起来也整洁了。
成功!