递归练习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;
}

posted @ 2019-11-28 15:36  哈哈,呵呵,嘿嘿  阅读(142)  评论(0)    收藏  举报