进位转换(杭电2031)

/*进制转换

Problem Description

输入一个十进制数N,将它转换成R进制数输出。

Input

输入数据包括多个測试实例,每一个測试实例包括两个整数N(32位整数)和R(2<=R<=16, R<>10)。

Output

为每一个測试实例输出转换后的数,每一个输出占一行。假设R大于10,则相应的数字规则參考16进制(比方,10用A表示,等等)。

Sample Input

7 2

23 12

-4 3

Sample Output

111

1B

-11

*/

//使用两个字符数组解决这个问题

#include<stdio.h>

int main()

{

int N,R;

char a[35];

char b[]="0123456789ABCDEF";

while(~scanf("%d %d",&N,&R))

{

int t=0,i;

if(N<0)

{

printf("-");

N=N*(-1);

}

for(i=0;;i++)//重复求余,最后倒着将数组数据输出

{

a[i]=b[N%R];

t++;

N=N/R;

if(N==0)

break;

}

while(t--)

{

printf("%c",a[t]);

}

printf("\n");

}

while(1);

return 0;

}

时间: 2024-10-09 07:26:35

进位转换(杭电2031)的相关文章

杭电2031(进制转换)

点击打开杭电2031 Problem Description 输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). Output 为每个测试实例输出转换后的数,每个输出占一行.如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等). Sample Input 7 2 23 12 -4 3 Sample Output 111 1B -11 代码实现: im

杭电2031进制转换

Problem Description 输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). Output 为每个测试实例输出转换后的数,每个输出占一行.如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等). Sample Input 7 2 23 12 -4 3 Sample Output 111 1B -11 1 #include <stdi

杭电2031 进制转换

进制转换 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 49640    Accepted Submission(s): 27279 Problem Description 输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<&

杭电2031

进制转换 Problem Description 输入一个十进制数N,将它转换成R进制数输出.   Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10).   Output 为每个测试实例输出转换后的数,每个输出占一行.如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等).   Sample Input 7 2 23 12 -4 3   Sample Output 111 1B -11   Auth

杭电 -- 2031

题意及思路 题意:输入两个数n,r,将n(十进制数)转换为r进制. 思路:%r操作即可转换. 踩坑点:第一,n有可能为负数,若为负数,则注意负数的情况.第二,若转换的数字大于10,exp:10 --> A.则将其转换为16进制中各个数的对应形式.尤其注意(我自己的问题),当输出一个字符(如A)时,不要“急着”输出换行符,否则将会步我的后尘.哎! 代码 package com.kyrie.java1; import java.util.ArrayList; import java.util.Sca

进制转换,杭电0j-2031

进制转换,杭电0j-2031原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=2031 [Problem Description] 输入一个十进制数N,将它转换成R进制数输出. [Input] 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). [Output] 为每个测试实例输出转换后的数,每个输出占一行.如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等).

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

HDU 4937 (杭电多校 #7 1003题)Lucky Number(瞎搞)

题目地址:HDU 4937 多校的题以后得重视起来...每道题都错好多次...很考察细节.比如这道....WA了无数次.... 这题的思路自己真心想不到...这题是将进制后的数分别是1位,2位,3位和更多位的分开来计算. 当是1位的时候,显然只有3到6,此时只能是-1 当是2位的时候,可以转换成一元一次方程求解 当是3位的时候,可以转换成一元二次方程求解 当是4位的时候,此时最多也只有7000个数,7000^3接近1e12.所以剩下的直接枚举进制数来判断即可. 代码如下: #include <i

杭电ACM题目分类

杭电ACM题目分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028. 1029.1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092. 1093.1094.1095.1096.1097.1098.1106.1108.1157.1163.1164.1170.1194.1196. 1197.1201.1202.1205.1219.1234.123