数制转换 - 九度教程第44题

题目:

时间限制:1 秒 内存限制:32 兆 特殊判题:否
题目描述:
求任意两个不同进制非负整数的转换(2 进制~16 进制),所给整数在 long 所能表达的范围之内。不同进制的表示符号为(0,1,…,9,a,b,…,f)或 者(0,1,…,9,A,B,…,F)。
输入:
输入只有一行,包含三个整数 a,n,b。a 表示其后的 n 是 a 进制整数,b 表示欲将 a 进制整数 n 转换成 b 进制整数。a,b 是十进制整数,2 =< a,b <= 16。
输出:
可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的 b 进制数。输出时字母符号全部用大写表示,即(0,1,…,9,A,B,…, F)。
样例输入:
15 Aab3 7
样例输出:
210306
提示:
可以用字符串表示不同进制的整数
来源:
2008 年北京大学图形实验室计算机研究生机试真题

代码:

#include<stdio.h>
#include<string.h>  //strlen函数,计算字符串长度
int main()
{int a,b;char str[40];while(scanf("%d%s%d",&a,str,&b)!=EOF){int tmp=0;  //tmp为我们将要计算的a进制对应的十进制数int lenth=strlen(str);//lenth为字符串长度,方便我们从低高位遍历每个数位上的数int c=1;    //c为各个数位上的权重。初始化为1,表示最低位数位权1,之后每位权重都是前一位权重的a倍for(int i=lenth-1;i>=0;i--)//从低位到高位遍历每个数位上的数字{int x;if(str[i]>='0' && str[i]<='9'){x=str[i]-'0';       //当字符在0到9之间,计算其代表的数字}else if(str[i]>='a' && str[i]<='z'){x=str[i]-'a'+10;    //当字符为小写字母时,计算其代表的数字}else{x=str[i]-'A'+10;    //当字符为大写字母时,计算其代表的数字}tmp+=x*c;               //累加该位数字与该数位权重的积c*=a;                   //计算下一位数位权重}char ans[40],size=0;        //用ans保存转换到b进制的各个数位数字while(tmp!=0){int x=tmp%b;            //计算该数位数字ans[size++]=(x<10)?x+'0':x-10+'A';//将数字转换为字符tmp/=b;}for(int i=size-1;i>=0;i--){printf("%c",ans[i]);}printf("\n");               //输出}return 0;
}

例4.3 数制转换 - 九度教程第44题(进制转换)相关推荐

  1. 数制转换 九度教程第44题 a进制数转换为b进制数 不同进制之间相互转换

    题目链接 解题思路: 1.将a进制数转换成十进制数: 2.将十进制数转换成b进制数: 3.使用do while 循环,可以确保即使被转换数字是 0 ,程序也能正常工作. AC代码: #include& ...

  2. 九度oj 题目1080:进制转换

    题目描述: 将M进制的数X转换为N进制的数输出. 输入: 输入的第一行包括两个整数:M和N(2<=M,N<=36). 下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成 ...

  3. Piggy-Bank - 九度教程第 102 题

    Piggy-Bank - 九度教程第 102 题 题目 时间限制:1 秒 内存限制:32 兆 特殊判题:否 题目描述: Before ACM can do anything, a budget mus ...

  4. 质因数的个数 - 九度教程第54题

    质因数的个数 - 九度教程第54题 题目 时间限制:1 秒 内存限制:32 兆 特殊判题:否 题目描述: 求正整数 N(N>1)的质因数的个数. 相同的质因数需要重复计算.如 120=22235 ...

  5. 不容易系列之一(九度教程第 94 题)

    不容易系列之一(九度教程第 94 题) 时间限制:1 秒 内存限制:128 兆 特殊判题:否 1.题目描述: 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好"一件&q ...

  6. 信息学奥赛一本通 1820:【00NOIP提高组】进制转换 | 洛谷 P1017 [NOIP2000 提高组] 进制转换

    [题目链接] ybt 1820:[00NOIP提高组]进制转换 洛谷 P1017 [NOIP2000 提高组] 进制转换 注意:两OJ上题目内容相同,输入输出要求不同 [题目考点] 1.数制 [解题思 ...

  7. linux c int16进制转10进制,[编程题] 进制转换(16进制转10进制)

    [编程题] 进制转换 3/3 [编程题] 进制转换 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. ...

  8. 进制转换对学计算机的意义,浅析进制转换在计算机应用中的技巧.docx

    2019年浅析进制转换在计算机应用中的技巧 1.二进制的使用意义 一种新处置器的盛行,离不开响应软件的支撑.开拓新的处置器能够会由于落空响应软件的支撑而影响其推行使用和市场前景;另一方面,得不到普遍使 ...

  9. c语言进制转换实验报告,c语言_各种进制转换.docx

    c语言_各种进制转换.docx c 语言 各种进制转换 计算机中常用的数的进制主要有二进制.八进制.十六进制. 2 进制,用两个阿拉伯数字0.1: 8 进制,用八个阿拉伯数字0.1.2.3.4.5.6 ...

  10. 计算机进制转换a是什么,[计算机基础] 计算机进制转换:二进制、八进制、十进制、十六进制...

    计算机进制转换:二进制.八进制.十进制.十六进制 一.什么是进制 在生活中,我们通常都是使用阿拉伯数字计数的,也就是10进制,以10为单位,遇10进一,所以是由0,1,2.3.4.5.6.7.8.9组 ...

最新文章

  1. mysql 使用EF6.0CodeFirst
  2. C++标准pdf 分享
  3. 《1024伐木累》-程序员妹子与花木兰
  4. [.Net 4.0]泛型的协变,以及高阶函数对泛型的影响 Part 1
  5. HBuilder工作笔记002---HBuilder打包IOS应用测试IOS应用
  6. echarts改变图例位置
  7. linux 大文本文件,Linux文本文件处理(1)
  8. 蓝桥杯 ADV-188 算法提高 排列数
  9. 快速自检电脑是否被黑客入侵过(Windows版)
  10. 9. Git flow
  11. angular 更新表单值的两种方法: setvalue,patchvalue
  12. otl c mysql_OTL
  13. IMO2017day1.1
  14. Google Drive 转存别人分享的文件到自己的网盘
  15. 特步软件测试员工资,特步集团全面预算管理系统——管理员手册V1.1
  16. 书论91 万经《分隶偶存》
  17. PTA python 币值转换 ,逆序数
  18. 牛顿法计算平方根java_利用牛顿迭代法求平方根(转)
  19. Cortex-M3处理器的舞台
  20. Serverless开发实战——FASS

热门文章

  1. 文献管理三剑客之Mendeley最新版使用小记2
  2. C/C++ C# unity经常使用的一些快捷键
  3. Opencv官方文档和学习资料
  4. unity相机的两种不模式的区别
  5. Atitit code for biz lst idx项目分析法,包括模块分析,与模块位置idx数据库分析 数据表的分类 日志表不断增长(包括用户表,订单表等)。。元数据表表 基本不增长。。。
  6. Atitit 云计算之道 attilax著 艾龙 著 serverless bomb 1. 云计算体系 2 2. 2.6 3种服务模式 43 2.6.1 IaaS 45 2.6.2 PaaS
  7. Atitit 技术管理项目管理的职责列表attilax总结 v2 r74 brch4com.docx
  8. paip.sql2008 客户端软件绿色版V319
  9. paip.session的调试in php
  10. Rust :rustup的版本更新功能