问题链接: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 进制转换相关推荐

  1. CCF NOI1036 进制转换

    问题链接:CCF NOI1036 进制转换. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 模拟将任意给定的正整数n转换成对应的二进制数的过程:对于输入的任意正整数n,输出若 ...

  2. python中不同进制的整数之间可以直接运算_Python 进制转换、位运算

    一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...

  3. c语言进制转换pdf下载,C语言实现任意进制转换.doc

    C语言实现任意进制转换.doc includestdio.h#includemath.h#includestring.hvoid dtox(double num,int jz)char xnum100 ...

  4. 进制转换converse

    栈和队列是在软件设计中常用的两种数据结构,它们的逻辑结构和线性表相同. 其特点在于运算受到了限制:栈按"后进先出"的规则进行操作,队按"先进先出"的规则进行操作 ...

  5. 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)

    我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...

  6. 每日一题(进制转换)

    前言:为了让小伙伴更方便的学习编程语言,小白每天都会分享一道编程题.小白也创建了一个微信公众号,会同步更新题目和相关的视觉领域的知识,如果小伙伴不方便在网页上阅读文章,可以关注微信公众号"小 ...

  7. 进制转换数据结构c语言不用栈,急求!!!用数据结构(C语言)利用栈实现十进制向二(八)进制转换,要有注释,谢谢!...

    匿名用户 1级 2013-12-05 回答 #include #include #include typedef unsigned int data_type; //结点数62616964757a68 ...

  8. 计算机中的数制和编码教案,计算机《数制与编码进制转换》公开课教案.doc

    <计算机应用基础>教案 新田县职业中学 蒋玲 PAGE PAGE 7 数制与编码--进制转换 [学情分析]本课内容是在学生已经学习了计算机发展与应用.计算机系统的组成等知识的基础上进行,已 ...

  9. 进制转换(完成Python14作业的背景补充)

    来源于小甲鱼进制转换视频 数的认识 数,是一个无形的.抽象的概念,它是人类用来表示数量的一个智力的产物 "一百"是一个抽象概念,用到计数书本有几页就会变成具体的.有形的概念 我们要 ...

最新文章

  1. VMware 滴滴声解决
  2. img disabled可以用什么替代_本特:马内不可替代,菲米是粘合剂,萨拉赫可以用姆巴佩桑乔替代...
  3. 第一百二十九天 how can I坚持
  4. 【复习】使用 SQLiteDatabase 操作 SQLite 数据库
  5. java日期工具类DateUtil
  6. VLAN端口转发原则
  7. 总结 | 深度学习之Pytorch入门教程
  8. QSerialPort线程内接收异常
  9. C# 中的 ConfigurationManager类引用方法应用程序配置文件App.config的写法
  10. ies文件 vray_VRayIES灯光
  11. python实现密码破解
  12. C++windows环境管道通信
  13. JavaScript document对象
  14. 第一次去曼谷旅游怎么玩?这份省钱攻略请收好
  15. css实现加载旋转动画
  16. Zend studio 调整优化
  17. 用好销冠话术库,业绩增长十倍
  18. 机器学习算法之聚类算法拓展:Mini Batch K-Means算法
  19. 火狐浏览器打开后是搜狗浏览器_搜狗浏览器和Firefox浏览器哪个好
  20. python基本函数的使用_python基础之函数的应用

热门文章

  1. Go语言的复合数据类型struct,array,slice,map
  2. DXUT框架剖析系列文章(原创:天行健 君子当自强而不息)
  3. 完美解决github访问速度慢
  4. 为什么刹车热了会失灵_刹车油只要不缺,没必要更换,真的是这样吗?
  5. Android复习准备
  6. mysql当执行delete语句时备份_mysql中,执行delete语句时出现Lock wait timeout exceeded问题...
  7. mysql navicat授权_Mysql授权允许远程访问解决Navicat for MySQL连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端...
  8. python选择语句是什么语句_Python语言中的三种选择语句
  9. 在access窗体中加图片_如何在Access窗体中显示指定路径的图片
  10. Matplotlib——基本用法