不负韶华
来源:互联网 发布:怎样让网络信号变强 编辑:程序博客网 时间:2024/04/27 14:38
1.递归和非递归分别实现求第n个斐波那契数
递归:
实现:将参数字符串中的字符反向排列
要求:不能使用C函数库中的字符串操作函数
递归:
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int fib(int n){if(n<3)return 1;return (fib(n-1)+fib(n-2));}int main(){int n=0;scanf("%d",&n);printf("%d\n",fib(n));return 0;}非递归:
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int fib(int n){int i = 1;int j = 1;int k = 1;while(n>2){k=i+j;i=j;j=k;n--;}return k;}int main(){int n = 0;scanf("%d",&n);printf("%d\n",fib(n));return 0;}2.编写一个函数实现n^k,使用递归实现
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>power(int n,int k){if(k==0)return 1;return n*power(n,k-1);}int main(){int n = 0;int k = 0;scanf("%d %d",&n,&k);printf("%d\n",power(n,k));return 0;}3. 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int DigitSum(int n){static int sum = 0;if(n>9){DigitSum(n/10);}sum+=n%10;return sum;}int main(){int n = 0;scanf("%d",&n);printf("%d\n",DigitSum(n));return 0;}4. 编写一个函数reverse_string(char * string)(递归实现)
实现:将参数字符串中的字符反向排列
要求:不能使用C函数库中的字符串操作函数
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>void reverse_string(char *string){if(*string=='\0')printf("%c",*string);else{reverse_string(++string);printf("%c",*(--string));}}int main(){char arr[]="abcdefgh";reverse_string(arr);return 0;}
5.递归和非递归分别实现strlen
递归:
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int strlen(char *p){if(*p==0)return 0;return strlen(++p)+1;}int main(){char arr[]="abcdefgh";printf("%d\n",strlen(arr));return 0;}非递归:
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int strlen(char *p){int i=0;for(i=0;*p++!=0;i++);return i;}int main(){char arr[]="abcdefgh";printf("%d\n",strlen(arr));return 0;}
6.递归和非递归分别实现求n的阶乘
递归:
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int fac(int n){if(n==1)return 1;return fac(n-1)*n;}int main(){int n=0;scanf("%d",&n);printf("%d\n",fac(n));return 0;}非递归:
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int fac(int n){int i=1;int y=1;for(i=1;i<n+1;i++)y*=i;return y;}int main(){int n=0;scanf("%d",&n);printf("%d\n",fac(n));return 0;}
7.递归方式实现打印一个整数的每一位
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>void print(int n){if(n>9){print(n/10);}printf("%d ",n%10);}int main(){int n=0;scanf("%d",&n);print(n);return 0;}
阅读全文
0 0
- 《不负韶华》
- 《不负韶华》
- 《不负韶华》
- 《不负韶华》
- 《不负韶华》
- 《不负韶华》
- 《不负韶华》
- 不负韶华
- 不负韶华
- 不负韶华
- 不负韶华
- 不负韶华
- 不负韶华不负卿
- 不负韶华,不负我心
- 诗意流年,韶华不负
- 无悔青春,不负韶华
- 以梦为马 不负韶华
- 不负此生
- 第十五周Java作业--线程
- 符号表之二:组织和运营策略
- apt-get基本命令
- 在开发板上实现usb mouse做画笔的功能
- 新建Module作为依赖库后出现“unspecified on project app resolves to an APK archive which……”错误的解决方法
- 不负韶华
- 原型模式(Prototype Pattern)
- BZOJ 1442: [Poi2006]Crystal dp
- Rhyme/Java getClass()与instanceof的区别以及如何编写一个完美的equals()
- js的面向对象的封装(一)
- HTTP 缓存机制
- Python---一门让人惊喜的语言
- 人工智能“六步走”学习路线
- 单例模式之模拟多线程高并发