输入一个十进制数N,将它转换成R进制数输出(运用递归实现)
2015-07-14 12:49
281 查看
#include<stdio.h>
int cnt=0; //用来记录每一个进制存放的位置
char num[20]; //用来存放每一个进制的数
void fun(int a,int b)
{
if(a==0)
//递归的终止条件
return;
fun(a/b,b);
//顺序递归
num[cnt++] = a%b; //逆序递归
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
if(a<0)
{
a = -a;
fun(a,b);
printf("-");
for(int i=0;i<cnt;i++)
{
if(num[i]<10)
printf("%d",num[i]);
else
printf("%c",num[i]+'A'-10);
}
}
else
{
fun(a,b);
for(int i=0;i<cnt;i++)
{
if(num[i]<10)
printf("%d",num[i]);
else
printf("%c",num[i]+'A'-10);
}
}
printf("\n");
cnt = 0;
}
}
int cnt=0; //用来记录每一个进制存放的位置
char num[20]; //用来存放每一个进制的数
void fun(int a,int b)
{
if(a==0)
//递归的终止条件
return;
fun(a/b,b);
//顺序递归
num[cnt++] = a%b; //逆序递归
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
if(a<0)
{
a = -a;
fun(a,b);
printf("-");
for(int i=0;i<cnt;i++)
{
if(num[i]<10)
printf("%d",num[i]);
else
printf("%c",num[i]+'A'-10);
}
}
else
{
fun(a,b);
for(int i=0;i<cnt;i++)
{
if(num[i]<10)
printf("%d",num[i]);
else
printf("%c",num[i]+'A'-10);
}
}
printf("\n");
cnt = 0;
}
}
相关文章推荐
- shell脚本调试
- iOS——MVVM设计模式
- shell脚本调试 分类: 学习笔记 linux ubuntu 2015-07-14 12:49 53人阅读 评论(0) 收藏
- Largest Redis Clusters Ever
- 常用第三方类包的地址
- Linux下firefox安装flash player插件
- IT项目量化管理结构图
- 【Invert Binary Tree】cpp
- Redis资料汇总专题
- Android压缩图片到100K以下并保持不失真的高效方法
- Android Studio git使用教程
- MongoDB最佳实践
- 选项卡切换
- 1.随机森林原理介绍
- android tab切换的资源回收解决方案
- 一、状态压缩dp(1)多米诺骨牌
- leetcode 235 Lowest Common Ancestor of a Binary Search Tree
- [转载] HTTP 协议漫谈
- 全本于2015年7月14日思考强人工智能
- SELinux角色的用途