简单的递归问题
1、将任意正整数化为二进制形式
创新互联是一家专业提供长海企业网站建设,专注与成都做网站、网站设计、成都h5网站建设、小程序制作等业务。10年已为长海众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
(1)、代码如下:
#includevoid digui(int n){ int c; c = n%2; if(n > 0){ digui(n/2); printf("%d", c); } } int main(void){ int n; scanf("%d", &n); digui(n); printf("\n"); return 0; }
(2)、运行结果:
2、将任意正整数转化为十六进制形式
(1)、代码如下:
#includevoid digui(int n); void digui(int n){ int c; c = n%16; if(n > 0){ digui(n/16); if(c >= 10){ printf("%c", c-10+'A'); }else{ printf("%d", c); } } } int main(void){ int n; scanf("%d", &n); digui(n); printf("\n"); return 0; }
(2)、运行结果:
3、求前N个整数和
(1)、代码如下:
#includeint sum(int n){ if(n == 0){ return 0; } return n+sum(n-1); } int main(void){ int number; int n; scanf("%d", &number); n = sum(number); printf("%d\n", n); return 0; }
(2)、结果如下:
4、利用递归求每个斐波那契数列
(1)、代码如下:
#includeint fibo(int num){ if(num == 0){ return 0; } if(num == 1){ return 1; } return fibo(num-1)+fibo(num-2); } int main(void){ int num; //第4个fibionaqie(从0开始算起)数字是:0、1、1、2、3、5、8.... int count; scanf("%d", &num); count = fibo(num); printf("%d\n", count); }
(2)、运行结果:
5、利用递归求字符串的长度
(1)、代码如下:
#include#include int strLen(char *str); int strLen(char *str){ if(*str == 0){ return; } return 1+strLen(str+1); } int main(void){ char str[80]; int len; gets(str); len = strLen(str); printf("%d\n", len); }
(2)、运行结果:
分享标题:简单的递归问题
本文网址:http://pwwzsj.com/article/jhspgj.html