时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:4583

解决:1076

题目描述:

将M进制的数X转换为N进制的数输出。

输入:

输入的第一行包括两个整数:M和N(2<=M,N<=36)。

下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。

输出:

输出X的N进制表示的数。

样例输入:
16 10
F
样例输出:
15
提示:

输入时字母部分为大写,输出时为小写,并且有大数据。

来源:
2008年清华大学计算机研究生机试真题

思路:

典型进制转换题,直接看代码就行。

需要做一个字符转数字的函数。

a-z分别代表10-35.

代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h> #define M 1000 int iszero(char s[M], int n)
{
for (int i=0; i<n; i++)
{
if(s[i] != '0')
return 0;
}
return 1;
} int ctoi(char c)
{
if ('A' <= c)
return c-'A'+10;
else
return c-'0';
} char itoc(int i)
{
if (10 <= i)
return i-10+'A';
else
return i+'0';
} int main(void)
{
int m, n, i, k, left, flag;
char s1[M], s2[M];
int len1; while (scanf("%d%d%s", &m, &n, s1) != EOF)
{
len1 = strlen(s1);
k = 0;
flag = 0;
if (s1[0] == '-')
{
s1[0] = '0';
flag = 1;
}
if (iszero(s1, strlen(s1)))
{
printf("0\n");
continue;
}
while (! iszero(s1, len1))
{
left = 0;
for (i=0; i<len1; i++)
{
int tmp = left*m+ctoi(s1[i]);
left = tmp%n;
s1[i] = itoc(tmp/n);
}
//printf("left=%d\n", left);
s2[k++] = itoc(left);
}
s2[k] = '\0';
if (flag == 1)
printf("-");
for (i=strlen(s2)-1; i>=0; i--)
{
if ('A' <= s2[i])
s2[i] += 'a'-'A';
printf("%c", s2[i]);
}
printf("\n");
} return 0;
}
/**************************************************************
Problem: 1080
User: liangrx06
Language: C
Result: Accepted
Time:70 ms
Memory:912 kb
****************************************************************/

九度OJ 1080:进制转换 (进制转换)的更多相关文章

  1. 【九度OJ】题目1138:进制转换 解题报告

    [九度OJ]题目1138:进制转换 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1138 题目描述: 将一个长度最多为30 ...

  2. 九度OJ 1194:八进制 (进制转换)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3521 解决:2058 题目描述: 输入一个整数,将其转换成八进制数输出. 输入: 输入包括一个整数N(0<=N<=100000 ...

  3. 九度OJ题目1208:10进制 VS 2进制 (JAVA)

    题目描述: 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数.     例如对于十进制数173,它的二进制形式为10101101,逆序排列得到1 ...

  4. 九度oj 题目1208:10进制 VS 2进制

    题目描述: 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数.    例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10 ...

  5. 九度oj 题目1513:二进制中1的个数

    题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: 输入可能包含多个测试样例. 对于每个输入文件,第一行输入一个整数T,代表测试样例的数量.对于每个测试样例输入为一个 ...

  6. 【九度OJ】题目1080:进制转换 解题报告

    [九度OJ]题目1080:进制转换 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1080 题目描述: 将M进制的数X转换为 ...

  7. 【九度OJ】题目1208:10进制 VS 2进制 解题报告

    [九度OJ]题目1208:10进制 VS 2进制 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1208 题目描述: 对于一 ...

  8. 【九度OJ】题目1118:数制转换 解题报告

    [九度OJ]题目1118:数制转换 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1118 题目描述: 求任意两个不同进制非 ...

  9. 【九度OJ】题目1194:八进制 解题报告

    [九度OJ]题目1194:八进制 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1194 题目描述: 输入一个整数,将其转换 ...

随机推荐

  1. Write a function that generates one of 3 numbers according to given probabilities

    You are given a function rand(a, b) which generates equiprobable random numbers between [a, b] inclu ...

  2. 构建更好的HashMap

    在7月份的那期 Java理论与实践(“并发集合类”)中,我们简单地回顾了可伸缩性的瓶颈,并讨论了怎么用共享数据结构的方法获得更高的并发性和吞吐量.有时候学习的最好方法是分析专家的成果,所以这个月我们将 ...

  3. Oracle的隔离级别

    隔离级别(isolation level)       隔离级别定义了事务与事务之间的隔离程度.     隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差:隔离程度越低,数据库的并发性越 ...

  4. BeanFactory和ApplicationContext的异同

    相同: Spring提供了两种不同的IOC 容器,一个是BeanFactory,另外一个是ApplicationContext,它们都是Java interface,ApplicationContex ...

  5. 深入浅出 Cocoa 之 Core Data(2)- 手动编写代码

    深入浅出 Cocoa 之 Core Data(2)- 代码示例 罗朝辉(http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 前面详细讲解了 Core Data 的框 ...

  6. SparkStreaming和Drools结合的HelloWord版

    关于sparkStreaming的测试Drools框架结合版 package com.dinpay.bdp.rcp.service; import java.math.BigDecimal; impo ...

  7. js 简单getByClass得封装

    function getByClass(oParent,sClass){ var elems = oParent.getElementsByTagName("*"); var ar ...

  8. 记录MySQL运行的SQL

    对照Oracle功能去学习Mysql总会发现亮点 Oracle中通过日志挖掘这一技能,能够找到以前运行过的全部记录: Mysql中也提供了3种方法{验证过的,我会记录详细做法} 方法1:{已验证} 记 ...

  9. SQLServer待优化语句查询

    SELECT top 100 (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N'总花费时 ...

  10. Android加载网络图片学习过程

    好多应用,像我们公司的<乘友>还有其他的<飞鸽><陌陌><啪啪>这些,几乎每一款应用都需要加载网络图片,那ToYueXinShangWan,这是比须熟练 ...