运用递归函数来转化进制
来源:互联网 发布:网络信号转换器 编辑:程序博客网 时间:2024/06/14 12:27
void suan(int a, int b)
{
if (a == 0)
return ; //值得注意的是,因为返回值是void, 所以不能return任何值。
suan(a/b, b);
r[cnt++] = a%b;
}
直接用递归函数把进制转化完存入数组。
我的代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<iomanip>
#include<string.h>
using namespace std;
int r[1000]; int cnt = 0;
void suan(int a, int b)
{
if (a == 0)
return ;
suan(a/b, b);
r[cnt++] = a%b;
}
int main()
{
int a1, b1, i;
while (scanf ("%d %d", &a1, &b1)!=EOF)
{
cnt = 0;
if (a1 == 0)
cout << "0" ;
else if (a1 < 0)
{
cout << "-";
a1 = -a1;
suan (a1, b1);
for (i = 0; i < cnt ; i++)
{
if (r[i] < 10)
cout << r[i];
else
cout << (char)('A' + r[i] -10);
}
}
else if (a1 > 0)
{
suan (a1, b1);
for (i = 0; i < cnt; i++)
{
if (r[i] < 10)
cout << r[i];
else
cout << (char)('A' + r[i] -10);
}
}
cout << endl;
}
return 0;
}
注意, 要输出一个变量(如a)的ascll码值,如果用printf,就写printf(“%d”, &a)
如果是cout, 就写cout<<(int)a;
如果要输出一个ascll值代表的字符,用printf,就写printf(“%c”, &a)
如果是cout, 就写cout<<(char)a;
- 运用递归函数来转化进制
- 运用函数递归求n!
- 递归函数之将十进制数转化为其他进制
- Hanoi塔-函数递归方法的运用
- 运用递归函数求累加和
- 递归函数的执行机制和运用
- 运用递归编写strlen函数实例
- 运用递归函数解决一些实际问题
- 如何将递归函数转化为非递归函数
- 将递归函数转化为非递归练习
- 将递归函数转化为非递归再讨论
- 十三周项目3递归运用(进制转换)
- 黑马程序员-递归10进制转化成2进制
- 【问题】:进制转化算法(迭代版&递归版)
- 利用递归调用实现十进制转化成任意进制
- 蓝桥杯训练:递归——进制转化
- 【递归】递归的运用
- [Algorithms, C] long2char: 自己用C写来玩玩的整形转化为字符串函数 (递归和迭代两种实现): void long2char(long from, char *to, int n);
- 详解大端模式和小端模式
- android studio 之Gradle基本配置
- 文本溢出边界显示为省略号
- Disruptor(无锁并发框架)-发布
- Windbg调试命令详解
- 运用递归函数来转化进制
- Fastlane的黑魔法:一键打包编译上传 AppStore
- cocoaPods安装与使用
- vueJs实现DOM加载完成之后自动下拉到底部
- 利用分段式深度解决特效重复叠加的问题
- 图片的三级缓存
- solr入门之参考淘宝搜索提示功能优化拼音加汉字搜索功能
- 宏定义头文件
- Python学习,Day4