递归:递归的原理,就是自己调用自己本身。存在一个顺序的问题,如果在递归前的是顺序执行,递归后的是逆序执行,如下: 

void gogogo()
{
//递归之前
gogogo();
//递归之后
}

递归

  下面实现进制转换就是利用的这个原理。

代码如下:

#include<stdio.h>
#include<stdlib.h>
void toletter(int num)
{
switch (num)
{
case :
printf("%c", 'a'); break;
case :
printf("%c", 'b'); break;
case :
printf("%c", 'c'); break;
case :
printf("%c", 'd'); break;
case :
printf("%c", 'e'); break;
case :
printf("%c", 'f'); break;
default:
printf("%d", num); break;
}
}
//十进制转二进制
void convertto2(int num)
{
if (num ==|| num==)
{
printf("%d",num);
}
else
{
int n=num / ;
convertto2(n);
printf("%d",num %);//如果把这句话放在convertto2(n);之前就是顺序执行,显示是逆序,所以实现了余数的倒序排列。
}
}
//十进制转八进制
void convertto8(int num)
{
if (num < )
{
printf("%d", num);
}
else
{
int n = num / ;
convertto8(n);
printf("%d", num % );
}
}
//十进制转十六进制
void convertto16(int num)
{
if (num<)
{
toletter(num);
}
else
{
int n = num / ;
convertto16(n );
toletter(num % );
} } void main()
{
int num;
printf("请输入一个整数");
scanf_s("%d",&num);
printf("\n十进制转二进制:");
convertto2(num);
printf("\n十进制转八进制:");
convertto8(num);
printf("\n十进制转十六进制:");
convertto16(num);
system("pause");
}

递归图解

最新文章

  1. php内核分析(五)-zval
  2. [LeetCode] Word Ladder II 词语阶梯之二
  3. Ajax:一种网页开发技术(Asynchronous Javascript + XML)
  4. java的对象的总结:(PO,VO,DAO,BO,POJO)
  5. English Training Material - 04
  6. PIGOSS
  7. PHP正则表达式之定界符和原子介绍
  8. HDU 5151 Sit sit sit 区间DP + 排列组合
  9. Spark + Mesos 注意事项
  10. react-redux源码解析
  11. 55. 略谈Lotus Notes的与众不同及系列文章至此的总结
  12. CSS边框阴影效果
  13. .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件
  14. 简单时钟——css3
  15. linkin大话面向对象--包和导入
  16. java程序连接hive数据库遇到的问题
  17. crypto AES 加密 解密
  18. gui设计
  19. Jenkins自动化CI CD流水线之5--pipeline
  20. eclipse maven程序包org.junit不存在

热门文章

  1. IOS的UITextField,UIButton,UIWebView它描述的一些属性和IOS提示图像资源
  2. oracle_PLSQL 快捷键使用技巧
  3. 刚刚回归的开始菜单 Windows 10全面体验
  4. C语言qsort函数算法性能测试
  5. 欧几里德欧几里德原理和扩展的原则,(Euclidean Theory and Extended Euclidean Theory)学习笔记
  6. 深入理解JavaScript(1)
  7. 简洁vim配置方案Janus(1)
  8. Java程序员应该知道的10个Eclipse调试技巧
  9. Spring Resource之内置的Resource实现
  10. openwrt的GPIO控制