NOJ 1012 进制转换(十进制转换成任意进制)

题目:

进制转换

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 1819            测试通过 : 525 

题目描述

将一个十进制数N转换成R进制数输出,2≤R≤16,R≠10。

输入

多行。第一行指出以下一共有多少组数据,后续每行包含两个整数N和R,以空格分隔,-100000≤N≤100000,2≤R≤16,R≠10。

输出

多行。每行给出转换后的R进制数。

样例输入

3
7 2
23 12
-4 3

样例输出

111
1B
-11

提示

题目来源

GUOJ

题目分析:

简单题。利用itoa将十进制转换成任意进制。。

代码如下:

/*
 * a.cpp
 *
 *  Created on: 2015年3月31日
 *      Author: Administrator
 */

#include <iostream>
#include <cstdio>
#include <cstdlib>

using namespace std;
const int maxn = 32;
char numbers[maxn];

void toUpper(char str[]){
	int i = 0;
	while(str[i] != ‘\0‘){
		if(str[i] >= ‘a‘ && str[i] <= ‘z‘){
			str[i] -= 32;
		}

		i++;
	}
}

int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		int n;
		int base;
		scanf("%d%d",&n,&base);

		bool flag = false;

		if(n < 0){
			n = -n;
			flag = true;
		}

		itoa(n,numbers,base);
		toUpper(numbers);

		if(flag == true){
			printf("-");
		}
		printf("%s\n",numbers);
	}

	return 0;
}
时间: 2024-11-02 23:33:27

NOJ 1012 进制转换(十进制转换成任意进制)的相关文章

python 十进制转换成任意进制

记得大学时代,参加学校举行的编程大赛,其中有道题是: 编写一函数,实现十进制转换成十六进制. 看起来非常简单的一道题,最后竟然没有实现,想想都觉得惭愧啊,回去网上一搜,那是相当的easy的事情:时隔五六年了,工作中一直是用java,最近学习python,所以突然想到这个问题,就用python来实现这道题.下面使用两种方法分别实现: 一.循环 def decimalToNBaseByNormal(decimalVar, base): tempList = [] temp = decimalVar

数制之十进制转成其他进制

十进制转二进制············整数转换方法,就是使用除2逆序取余法,就是将一个十进制的数,如50 不停的除以2,然后取余,如果是整除,那么就取0,最终,直到十进制的数字,小于2为止,然后从商开始由下而上,将二进制数串联起来············小数转换方法,就是使用乘2正序取整法,就是将一个十进制的小数,不断的乘以2,然后取整,在取得整数之前,有可能出现连续几次都无整数,这个时候取0. 十进制转八进制··············整数转换方法,就是使用除8逆序取余法,将一个十进制的数,如

python 十进制整数转换为任意进制(36以内)

def baseN(num, b): return ((num == 0) and "0") or (baseN(num // b, b).lstrip("0") + "0123456789abcdefghijklmnopqrstuvwxyz"[num % b])

c语言将字符串转成int,将int转成字符串。附带任意进制转换函数

在网上看到各种将字符串转成int,和int转成字符串的方法.我自己比较喜欢用的方法是下面的,记住模板就行,最开始我也老是记不住,找到规律,多用几遍就好了. 1.将字符串转成int char s[20] = "123456";   // 注如果此处不是数字字符串类型,如下面的字符串  12abc -->  12        ab12 --> 0 int a = 0; sscanf(s,"%d",&a);   // a = 123456   就得到

C语言博客(6)编程基础之进制之间的转换

在本人的C语言博客的内容中,前面两篇随笔对二进制.八进制和十六进制进行了说明,接下来讲一下不同进制之间的数字是如何转换的,这在编程中经常会用到,尤其是C语言. 其他进制向十进制转换 在C语言学习中,二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权".例如,十进制第1位的位权为100=1,第2位的位权为101=10,第3位的位权为102=100:而二进制第1位的位权为20=1,第2位的位权为21=2,第

(2、8、10、16)进制之间的转换的背后的故事

今天在涉及到String型转换为Int型时候想到的一个问题,带符号数的转换问题,发现需要再回头看看进制的问题.找到点资料,觉得还可以,借取一段放在这里与备后查. 16进制:用16作为基数的计数系统.用数字0-9和字母a-f(或其大写A-F)表示10到15. 十六进制数转换成十进制数 2进制,用两个阿拉伯数字:0.1: 8进制,用八个阿拉伯数字:0.1.2.3.4.5.6.7: 10进制,用十个阿拉伯数字:0到9: 16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?

计算机各进制之间的转换

今天翻了一本计算机基础的书籍,其中十进制.二进制.八进制.十六进制之间的转换挺有意思的,也容易犯糊涂,特温故而知新. 十进制数制系统 十进制数制系统包括 10 个数字:0.1.2.3.4.5.6.7.8.9 基为:10        逢十进一,如3+7=10,20+80=100 二进制数制系统 计算机中使用二进制表示数据 二进制包括两个符号:0和1 二进制逢二进一:(1+1)2=(10)2 二进制的基为2 示例:1000101100101101 八进制数制系统 用于缩短二进制的数字长度 八进制基

【模板小程序】2~62位非负数任意进制转换,包含合法性检查

1 //进制转换模块 2 #include <iostream> 3 #include <string> 4 #include <cmath> 5 #include <algorithm> 6 7 using namespace std; 8 9 //将任意字符转换为十进制 [0-9a-zA-Z],61个字符,最大表示62进制 10 int convertToDec(char c) 11 { 12 int decNum; 13 if(c>='0' &a

(HDUStep 1.2.6)decimal system(任意进制转十进制)

题目: decimal system Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3622 Accepted Submission(s): 1419   Problem Description As we know , we always use the decimal system in our common life, even us