#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Duigui(int n){
int sum = 0;
int one = 1;
int two = 1;
if (n <= 2){
return 1;
}
while (n>2){
sum = one + two;
one = two;
two = sum;
n--;
}
return sum;
}
int main(){
//1+1+2+3+5+8+13+21+34+55+.............................
//n = (n - 1) + (n-2)
//.递归和非递归分别实现求第n个斐波那契数。
int n = 0;
scanf("%d", &n);
int sum = Duigui(n);
printf("%d\n", sum);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int fib(int n){
if (n <= 2){
return 1;
}
else{
return fib(n - 1) + fib(n - 2);
}
}
int main(){
//1+1+2+3+5+8+13+21+34+55+.............................
//n = (n - 1) + (n-2)
//.递归和非递归分别实现求第n个斐波那契数。
int n = 0;
scanf("%d", &n);
int sum =fib(n);
printf("%d\n", sum);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int poweer(int n,int k){
if (k<=0){
return 1;
}
else{
return n*poweer(n, k - 1);
}
}
int main(){
//.编写一个函数实现n^k,使用递归实现
int a = 0;
int b = 0;
scanf("%d %d",&a,&b);
int ret = poweer(a,b);
printf("%d",ret);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int zong = 0;
int DigitSum(int num){
if (num > 9){
DigitSum(num/10);
}
return zong = zong + num % 10;
}
int main(){
//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,
//例如,调用DigitSum(1729),则应该返回1 + 7 + 2 + 9,它的和是19
int num = 1234564;
int a = DigitSum(num);
printf("%d",a);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void reverse_string(char* str){
if (*str!='\0'){
reverse_string(str+1);
}
printf("%c",*(str-1));
}
int main(){
//4. 编写一个函数 reverse_string(char * string)(递归实现)
//实现:将参数字符串中的字符反向排列。
//要求:不能使用C函数库中的字符串操作函数。
char a[100] = "asdcfv";
reverse_string(a);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int strlen(char* str){
if (*str=='\0'){
return 0;
}
else{
return strlen(str+1)+1;
}
}
int main(){
//5.递归和非递归分别实现strlen
char arr[100] = "asdfdfdg";
int a = strlen(arr);
printf("%d",a);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int cout = 0;
int strlen(char* str){
while (1){
if (*str!='\0'){
str = str + 1;
cout++;
}
if (*str=='\0'){
return cout;
}
}
}
int main(){
//5.递归和非递归分别实现strlen
char arr[100] = "asdfdfdg";
int a = strlen(arr);
printf("%d",a);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int factorial(int n){
if (n==1){
return 1;
}
else{
return n*factorial(n - 1);
}
}
int main(){
//.递归和非递归分别实现求n的阶乘
int num = 5;
int a = factorial(num);
printf("%d",a);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int sum = 1;
int factorial(int n){
for (int i = 1; i <= n;i++){
sum = sum*i;
}
return sum;
}
int main(){
//.递归和非递归分别实现求n的阶乘
int num = 5;
int a = factorial(num);
printf("%d",a);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void Printf(int n){
if (n>9){
Printf(n/10);
}
printf("%d ",n%10);
}
int main(){
//递归方式实现打印一个整数的每一位
int num = 122525252;
Printf(num);
system("pause");
return 0;
}
函数递归的简单算法
猜你喜欢
转载自blog.csdn.net/qq_43692920/article/details/84946836
今日推荐
周排行