递归练习15
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>//递归函数digitsum的使用,
int DigitSum(int n){
if (n <= 0){
return 0;
}
if(n < 9){
return n;
}
else
return (n % 10 + DigitSum(n / 10));//返回数之和
}
int main(){
int n;
int ret;
printf("input n:");
scanf("%d", &n);
ret=DigitSum(n);
printf("ret=%d", ret);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>//求n的斐波那契数
int Fibonacci(int n){//递归法
if (n == 1 || n == 2)
return 1;
else
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
int main(){
int n;
scanf("%d", &n);
Fibonacci(n);
printf("%d", Fibonacci(n));
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>//求n的k次方,普通循环方法
#include<stdlib.h>
int main(){
int n;
int k;
printf("input n and k:");
scanf("%d%d", &n,&k);
if (k == 0){
printf("1");
}
else
{
int i = 1;
int z = 1;
for (i = 1; i <= k; i++)
z = z*n;
printf("z=%d", z);
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>//递归法求
int Power(int n, int k){
if (k == 0)
return 1;
if (k == 1)
return n;
else
return (n*Power(n,k -1));
}
int main(){
int n;
int k;
printf("input n and k:");
scanf("%d%d", &n, &k);
Power(n, k);
printf("%d",n*Power(n,k - 1));
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>//循环求n的阶乘
int Fact(int n){
int i;
int num=1;
for (i = 1; i <= n; i++)
num = num*i;
return num;
}
int main(){
int n;
printf("input n:" );
scanf("%d", &n);
Fact(n);
printf("%d",Fact(n));
system("pause");
return 0;
}
int Fact(int n){//递归法求n的阶乘
if (n == 1)
return 1;
else
return Fact(n - 1)*n;
}
int main(){
int n;
printf("input n:");
scanf("%d", &n);
Fact(n);
printf("%d", Fact(n));
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>//递归法打印一个整数的每一位
void Integer(int n){
if (n > 9){
Integer(n / 10);
}
printf("%d ", n % 10);
}
int main(){
int num;
printf("input num:");
scanf("%d", &num);
Integer(num);
system("pause");
return 0;
}

浙公网安备 33010602011771号