C语言递归函数实现十位数转换进制并打印出来(超详细)
C语言递归函数实现十位数转换进制并打印出来
- 思路
- 事例
- 代码
思路
取余倒排序
将数字每次除以进制数的余数打印,但这样不是倒排序,通过将打印操作写在调用递归函数下面,可以在每次调用递归函数时将打印操作存起来。
在达到边界后(最后一次调用)所有存起来的操作都会从最后一个开始一步步执行。
十六进制稍微有一点点变化,多一个余数10 ~ 15表示为A ~ F的步骤,但思路一致。
事例
(片段,完整的在下面,a为十位数,n为要转换的进制):
if(a==0)return;
else
{zhuanhuan(a/n,n);printf("%d",a%n);
}
输入的数如果是0则停止,否则执行两步操作:
1.调用自身
2.打印余数
在执行第一步后每次调用自身里面都会再次调用自身,一直套娃直到数为0,所次每次调用自身第二步都会存起来。
如果a=4,n=2,
a不等于0,调用zhuanhuan(2,2),打印0的操作先存着。
在zhuanhuana(2,2)中a不等于0,调用zhuanhuan(1,2),打印0的操作先存着。
在zhuanhuana(1,2)中a不等于0,调用zhuanhuan(0,2),打印1的操作先存着。
在zhuanhuana(0,2)中a等于0,停止。
从最后一个开始执行存着的操作
打印1
打印0
打印0
所以4的二进制为100
代码
#include <stdio.h>
#include <stdlib.h>int main()
{int a,n;scanf("%d%d",&a,&n);zhuanhuan(a,n);return 0;
}
void zhuanhuan(int a,int n)
{if(n==2||n==8)if(a==0)return;else{zhuanhuan(a/n,n);printf("%d",a%n);}else if(n==16)if(a==0)return;else{zhuanhuan(a/n,n);if(a%n>=10)printf("%c",a%n+55);elseprintf("%d",a%n);}
}
C语言递归函数实现十位数转换进制并打印出来(超详细)相关推荐
- 进制之间的相互转换(超详细)
目录 (1)十进制转其它进制 1. 十进制转二进制 2. 十进制转八进制 3. 十进制转十六进制 4. 总结: (2)其它进制转十进制 1. 二进制转十进制 2. 八进制转十进制 3. 十六进制转十 ...
- HTML5进制转换,进制转换
我们知道十进制转换成二进制用短除法,但是为什么用短除法呢?请往下看. "数制"只是一套符号系统来表示指称"量"的多少.我们用"1"这个符号来 ...
- C语言/C++中怎么表示8进制数或者16进制数?(8进制数用数字0开头,16进制数用0x或者0X开头)
在C语言里,整数有三种表示形式:十进制,八进制,十六进制. 其中以数字0开头,由0到7组成的数是八进制. 以0X或0x(0x中是数字0,不是大写字母O)开头,由0-9,A-F或a~f 组成是十六进制. ...
- win10怎么用计算机算进制,Win10系统计算器如何转换进制-win10系统下各进制转换的方法 - 河东软件园...
在我们日常的学习与工作中,常常需要对数据进行各类进制的转换,从而帮助用户处理数据,而绝大多数用户一般都会选择通过第三方的转换工具来实现进制转换,其实,在win10系统的计算器中就为用户提供了这项功能, ...
- 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...
- 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...
- 【二、八、十、十六】进制转换详解
目录 背景 进制转换算法 (二.八.十六进制) ---> (十进制) (十进制) ---> (二.八.十六进制) (二进制) --->(八.十六进制) (八进制) ↔ (十六进制) ...
- (二、八、十、十六)进制转换
3.1 进制转换 内容导视: 二进制与十进制互转 二进制与八进制互转 常用进制如下: 二进制:0.1,满 2 进 1 十进制:0 ~ 9,满 10 进 1 八进制:0 ~ 7,满 8 进 1 十六进制 ...
- c语言ae16进制转换,进制转换工具下载_16进制2进制转换with曼彻斯特编码 1.3 免费版_极速下载站_软件下载...
16进制2进制转换with曼彻斯特编码是一款简单易用的转换工具,可以对16进制.2进制.曼彻斯特算法.10进制等进行互转,支持802.3曼彻斯特.标准曼彻斯特.差分三种转换模式,支持曼彻斯特编码每8位 ...
最新文章
- iOS----------计算一段代码执行时间
- 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...
- 网络营销外包——网络营销外包前关键词排名反超首页的原因在哪里
- boost::logic::tribool相关用法的测试程序
- .NET Core开发日志——RequestDelegate
- 飞鸽-http://www.freeeim.com/
- 基础算法 —— 高精度计算 —— 高精度除法
- 【今日CV 计算机视觉论文速览】Fri, 22 Feb 2019
- 所代币代币_代币网络效应
- 关于telnet的安装
- 某互联网后台自动化组合测试框架RobotFramework+Python+Sikuli
- MATLAB编程实例
- html5移动端选择城市,移动端城市选择插件(原创)
- C语言之图书管理系统(功能齐全!!!)
- Encoder-Decoder框架与Attention机制
- 逍遥模拟器安装xposed installer
- linux学习-解决“sshd: no hostkeys available -- exiting”
- 图片,文字在线转为字符画
- 华为智慧屏 鸿蒙如何,抛开鸿蒙 华为智慧屏V65作为电视合格吗?
- JSON does not allow non-finite numbers