练习1:递归计算0--n的和
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(int i);
int main(int argc, const char *argv[])
{
int n;
printf("请输入一个数:");
scanf("%d",&n);
printf("累加和为%d\n",fun(n));
return 0;
}
int fun(int n)
{
if(n==0){
return 0;
}
else{
return n+fun(n-1);
}
}
练习2:递归计算n!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(int i);
int main(int argc, const char *argv[])
{
int n;
printf("请输入一个数:");
scanf("%d",&n);
printf("前%d项乘积为:%d\n",n,fun(n));
return 0;
}
int fun(int i){
if(i == 1){
return 1;
}
else{
return i*fun(i-1);
}
}
练习3:递归计算各个位数字之和
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(int n);
int main(int argc, const char *argv[])
{
int n;
printf("请输入一个数:\n");
scanf("%d",&n);
printf("各个位上的数字之和为:%d\n",fun(n));
return 0;
}
int fun(int n){
if(n==0){
return 0;
}
else
return (n%10)+fun(n/10);
}