简单的递归问题-创新互联
1、将任意正整数化为二进制形式
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了藤县免费建站欢迎大家使用!(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)、运行结果:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享题目:简单的递归问题-创新互联
分享链接:http://scyanting.com/article/dephig.html