十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include "stdio.h"
盐都网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。成都创新互联公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
void main()
{
int n,ns;int i,j,k,m;
printf("请输入n的值");
scanf("%d",ns);//将输入n的值存入变量ns
n=ns;
printf("%d=%d\n",n,n);//输出n=n的情况 比如7=7
//核心思想n=(n-1)+1再把n-1看做n进行递归直到n=1
while(n)
{
m=n/2;//取n的一半
for(i=1;i=m;i++)//对于任意整数都可以看做n/2种两个正整数的和
{
k=n-i;
printf("%d=%d+%d",ns,k,i);//输出n=a+b型
for(j=0;jns-n;j++)//ns可以看做n后面加ns-n个1
{
printf("+1");
}
printf("\n");//换行
}
n--;
}
scanf("%d",k);//防止窗口马上关闭 输入任意数回车关闭
}
int fun(int x)
{
if(x==1) return 1;
else return x*fun(x-1);
}
void main()
{
int n;
scanf("%d",n);
printf("%d\n",fun(n));
}
注意,14!已经超32位int范围了~~
而且,fun函数没有做数据检验,请不要用1~14以外的数作为参数。。。
//循环实现
#includestdio.h
int main()
{
int n, t = 0;
scanf("%d", n);
if(n=0)return 0;
else
while(n){
t = t * 10 + n % 10;
n /= 10;
}
printf("%d", t);
return 0;
}
简单修改一下就可以变递归了。代码如下
#includestdio.h
int fanzhuan(int n,int t){
t = t * 10 + n % 10;
n /= 10;
if(n0)return fanzhuan(n,t);
return t;
}
int main()
{
int n, t = 0;
scanf("%d", n);
if(n=0)return 0;
else t=fanzhuan(n,t);
printf("%d", t);
return 0;
}
# include stdio.h
void reverse( int n); //函数声明
void main ( )
{ int n;
printf("Input n: "); scanf("%d",n);
if(n0) n=-n;
printf("The reversed digits are: ");
reverse(n);
printf("\n");
}
void reverse(int n) //定义递归函数
{ printf("%d", n%10); //输出最低位数
if(n/10!=0) reverse(n/10); //如果除去最低位后还有其他数字,递归处理剩余部分
}
1、打开VC6.0软件,新建一个C语言的项目:
2、接下来编写主程序,首先定义用来求阶乘的递归函数以及主函数。在main函数里定义变量sum求和,调用递归函数fact(),并将返回值赋予sum,最后使用printf打印sum的结果,主程序就编写完了:
3、最后运行程序,观察输出的结果。以上就是C语言使用递归求阶乘的写法: