CCF NOI1076 进制转换
问题链接:CCF NOI1076 进制转换。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
用递归算法将一个十进制数X(1<=X<=10^9)转换成任意进制数M(2<=M<=16)。
输入
一行两个正整数X和M。
输出
输出X的M进制的表示。
样例输入
21 16
样例输出
1F
数据范围限制
提示
问题分析
这是一个进制问题。
题目要求用递归实现。递归实现比起递推实现速度上慢,而且耗费程序的堆栈空间。
用进制的基数(例如:10进制的基数为10)取余数计算可以获得数的最低位,除以进制的基数则相当于右移1位(扔掉最低位)。重复取余数和做除法,可以顺序得到一个数的从低位到高位。
需要注意的是,输出一个数要先输出高位,再输出低位。
程序说明
函数convert()用于将数转换为给定的进制。
这里给出递归和非递归两种程序。
要点详解
- C语言程序中,从重用性考虑,尽量将功能封装到函数中。
参考链接:(略)。
100分通过的C语言程序(非递归):
#include <stdio.h>#define N 100000000
char a[N];void convert(int n, int base)
{int i;i = 0;while(n) {a[i] = n % base;if(a[i] >= 10)a[i] = 'A' + a[i] - 10;elsea[i] += '0';i++;n /= base;}i--;while(i>=0) {printf("%c", a[i]);i--;}printf("\n");
}int main(void)
{int x, m;scanf("%d%d", &x, &m);convert(x, m);return 0;
}
100分通过的C语言程序(递归):
#include <stdio.h>void convert(int n, int base)
{char digit;if(n) {convert(n / base, base);digit = n % base;if(digit >= 10)digit = 'A' + digit - 10;elsedigit += '0';printf("%c", digit);}
}int main(void)
{int x, m;scanf("%d%d", &x, &m);convert(x, m);printf("\n");return 0;
}
CCF NOI1076 进制转换相关推荐
- CCF NOI1036 进制转换
问题链接:CCF NOI1036 进制转换. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 模拟将任意给定的正整数n转换成对应的二进制数的过程:对于输入的任意正整数n,输出若 ...
- python中不同进制的整数之间可以直接运算_Python 进制转换、位运算
一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...
- c语言进制转换pdf下载,C语言实现任意进制转换.doc
C语言实现任意进制转换.doc includestdio.h#includemath.h#includestring.hvoid dtox(double num,int jz)char xnum100 ...
- 进制转换converse
栈和队列是在软件设计中常用的两种数据结构,它们的逻辑结构和线性表相同. 其特点在于运算受到了限制:栈按"后进先出"的规则进行操作,队按"先进先出"的规则进行操作 ...
- 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)
我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...
- 每日一题(进制转换)
前言:为了让小伙伴更方便的学习编程语言,小白每天都会分享一道编程题.小白也创建了一个微信公众号,会同步更新题目和相关的视觉领域的知识,如果小伙伴不方便在网页上阅读文章,可以关注微信公众号"小 ...
- 进制转换数据结构c语言不用栈,急求!!!用数据结构(C语言)利用栈实现十进制向二(八)进制转换,要有注释,谢谢!...
匿名用户 1级 2013-12-05 回答 #include #include #include typedef unsigned int data_type; //结点数62616964757a68 ...
- 计算机中的数制和编码教案,计算机《数制与编码进制转换》公开课教案.doc
<计算机应用基础>教案 新田县职业中学 蒋玲 PAGE PAGE 7 数制与编码--进制转换 [学情分析]本课内容是在学生已经学习了计算机发展与应用.计算机系统的组成等知识的基础上进行,已 ...
- 进制转换(完成Python14作业的背景补充)
来源于小甲鱼进制转换视频 数的认识 数,是一个无形的.抽象的概念,它是人类用来表示数量的一个智力的产物 "一百"是一个抽象概念,用到计数书本有几页就会变成具体的.有形的概念 我们要 ...
最新文章
- VMware 滴滴声解决
- img disabled可以用什么替代_本特:马内不可替代,菲米是粘合剂,萨拉赫可以用姆巴佩桑乔替代...
- 第一百二十九天 how can I坚持
- 【复习】使用 SQLiteDatabase 操作 SQLite 数据库
- java日期工具类DateUtil
- VLAN端口转发原则
- 总结 | 深度学习之Pytorch入门教程
- QSerialPort线程内接收异常
- C# 中的 ConfigurationManager类引用方法应用程序配置文件App.config的写法
- ies文件 vray_VRayIES灯光
- python实现密码破解
- C++windows环境管道通信
- JavaScript document对象
- 第一次去曼谷旅游怎么玩?这份省钱攻略请收好
- css实现加载旋转动画
- Zend studio 调整优化
- 用好销冠话术库,业绩增长十倍
- 机器学习算法之聚类算法拓展:Mini Batch K-Means算法
- 火狐浏览器打开后是搜狗浏览器_搜狗浏览器和Firefox浏览器哪个好
- python基本函数的使用_python基础之函数的应用
热门文章
- Go语言的复合数据类型struct,array,slice,map
- DXUT框架剖析系列文章(原创:天行健 君子当自强而不息)
- 完美解决github访问速度慢
- 为什么刹车热了会失灵_刹车油只要不缺,没必要更换,真的是这样吗?
- Android复习准备
- mysql当执行delete语句时备份_mysql中,执行delete语句时出现Lock wait timeout exceeded问题...
- mysql navicat授权_Mysql授权允许远程访问解决Navicat for MySQL连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端...
- python选择语句是什么语句_Python语言中的三种选择语句
- 在access窗体中加图片_如何在Access窗体中显示指定路径的图片
- Matplotlib——基本用法