重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
专业成都网站建设公司,做排名好的好网站,排在同行前面,为您带来客户和效益!创新互联为您提供成都网站建设,五站合一网站设计制作,服务好的网站设计公司,做网站、成都做网站负责任的成都网站制作公司!
int factn(int n)//求n!
{
int i,f=1;
for(i=1;i=n;i++)
f=f*i;
return f;
}
int main()
{
int x,y,sum;
printf("请输入x,y:");
scanf("%d,%d",x,y);
sum=factn(x)+factn(y);
printf("%d!+%d!=%d\n",x,y,sum);
return 0;
}
首先明确题目要求:递归函数,求n!
递归函数的含义:
编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。
n!表示阶乘函数,即1*2*3*……*n
下面给出代码:(C语言实现 )
比较简单的尾递归实现:
#includestdio.h
long digui(int n); //递归函数声明
int main()
{
int n;
scanf("%d",n);
printf("the result is %ld",digui(n)); //打印出递归值
return 0;
}
long digui(int n) //递归函数部分
{
if(n1)
return n*digui(n-1); //调用递归,让n与n-1相乘,直到n1时
return 1; //n1时,返回1,实现 n*(n-1)*(n-2)*……*3*2*1
}
第一
#include
main()
{
int n,m,i,j;
long int sumn,summ;
scanf("%d%d",n,m);
if(m15 || n15)
printf("wrong!\n");
else
{
sumn=1;
summ=1;
for(i=1;i=n;i++)
sumn=sumn*i;
for(j=1;j=m;j++)
summ=summ*j;
printf("sumn=%ld\nsumm=%ld\n",sumn,summ);
}
}
第二题:
#include
#include
main()
{
int i;
char n[100];
scanf("%s",n);
if(strlen(n)==1)
printf("%s\n",n);
else
{
for(i=strlen(n)-1;i=0;i--)
{
printf("%c",n[i]);
}
printf("\n");
}
}
第三题:不为分:
#include
fun()
{
int a,b,c;
int asw,agw,bsw,bgw;
scanf("%d%d",a,b);
agw=a%10;
asw=a/10;
bgw=b%10;
bsw=b/10;
c=asw*10+agw*1000+bgw*100+bsw*1;
printf("c=%d\n",c);
}
main()
{
fun();
}
1、打开vs2017软件,新建c语言的工程,首先开头引入头文件,然后调用先调用一下求阶乘的函数和空的主函数,最下方定义prime函数用来求阶乘:
2、主函数中用scanf函数接受用户输入的的数字,接着将输入的数传入处理阶乘的函数中完成计算,最后输出打印结果。prime函数有一个参数,首先判断是否为正数,然后用prime函数自身乘以参数s,最后返回值即可完成:
3、将程序编译运行,弹出窗口输入任意的数,计算阶乘;这里输入7,得到结果是5040。以上就是C语言求阶乘的方法: