总目录
Educoder_C语言_第一部分C语言程序设计编辑与调试环境
目录
Educoder_C语言_第五部分 递归函数、嵌套函数
第1关 递归求阶乘数列
#include<stdio.h>
long long solve(long long n){
/*********Begin*********/
long long m,b;
m=1;
for(b=1;b<=n;b++)
m*=b;
return m;
/*********End**********/
}
int main(void)
{
long long n;
scanf("%lld",&n);
long long ans=0;
for(long long i=1;i<=n;i++)
ans+=solve(i);
printf("%lld", ans);
return 0;
}
第2关 递归实现输出一个整数的逆序
#include<stdio.h>
void solve(int n){
/*********Begin*********/
while(n!=0){
printf("%d",n%10);
n=n/10;
}
/*********End**********/
if(n>0) solve(n);
}
int main(void)
{
int n;
scanf("%d",&n);
solve(n);
return 0;
}
第3关 将整数递归转换成字符串
#include<stdio.h>
void solve(int n){
int temp=n%10;
/*********Begin*********/
n=n/10;
if(n)
solve(n);
/*********End**********/
if(n)
printf(" %d", temp);
else
printf("%d", temp);
}
int main(void)
{
int n;
scanf("%d",&n);
solve(n);
return 0;
}
第4关 递归实现Ackman函数
#include<stdio.h>
int Acm(int m,int n){
if(m==0&&n>0)
/*********Begin*********/
return n+1;
/*********End**********/
else if(n==0&&m>0)
/*********Begin*********/
Acm(m-1,1);
/*********End**********/
else
/*********Begin*********/
Acm(m-1,Acm(m,n-1));
/*********End**********/
}
int main(void)
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d", Acm(m,n));
return 0;
}