Work_7
Posted lkimprove
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Work_7相关的知识,希望对你有一定的参考价值。
递归和非递归分别实现求第n个斐波那契数。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> //非递归 int Fib1(int input){ if (input == 1 || input == 2){ return 1; } int first = 1; int second = 1; int number = 0; for (int i = 3; i <= input; i++){ number = first + second; first = second; second = number; } return number; } //递归 int Fib2(int input){ if (input == 1 || input == 2){ return 1; } return Fib2(input - 1) + Fib2(input - 2); }
int main(){ int input; printf("请输入所求的为第几个斐波那契数:"); scanf("%d", &input);
//非递归 printf("%d(非递归) ", Fib1(input));
//递归 printf("%d(递归)", Fib2(input));
printf(" "); system("pause"); return 0; }
编写一个函数实现n^k,使用递归实现。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int Pow(int n, int k){ if (k == 1){ return n; } return n * Pow(n, k - 1); } int main(){ int n, k; printf("请输入计算式(n ^ k)中的n与k的值: "); scanf("%d %d", &n, &k); printf("%d",Pow(n, k)); printf(" "); system("pause"); return 0; }
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int DigitSum(int input){ if (input < 9){ return input; } return input % 10 + DigitSum(input / 10); } int main(){ int input; printf("请输入一个非负整数: "); scanf("%d", &input); while (input < 0){ printf("输入格式错误,请重新输入: "); scanf("%d", &input); } printf("%d", DigitSum(input)); printf(" "); system("pause"); return 0; }
编写一个函数 reverse_string(char * string)(递归实现)
实现:将参数字符串中的字符反向排列。
要求:不能使用C函数库中的字符串操作函数。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void Reverse_string(char* string){ if (*string == ‘