首页 > 代码库 > UVa 355 - The Bases Are Loaded
UVa 355 - The Bases Are Loaded
题目:进制转换,加上合法判断。
分析:数论。先转化成十进制,再转化成对应的进制,输出即可。
base进制转化成十进制:顺序乘以base加和;
十进制转base进制:逆序输出模base的余数。
说明:注意值时0的情况。
#include <iostream> #include <cstdlib> #include <cstdio> using namespace std; char number1[11]; int ctoi( char ch ) { if ( ch >= '0' && ch <= '9' ) return ch - '0'; else return ch - 'A' + 10; } char itoc( int v ) { if ( v < 10 ) return v + '0'; else return v + 'A' - 10; } void dtob2( long long v, int b2 ) { if ( v ) { dtob2( v/b2, b2 ); printf("%c",itoc(v%b2)); } } int main() { int base1,base2; while (~scanf("%d%d%s",&base1,&base2,number1)) { //非法判断 int flag = 0; for ( int i = 0 ; number1[i] ; ++ i ) if ( ctoi(number1[i]) >= base1 ) flag = 1; if ( flag ) { printf("%s is an illegal base %d number\n",number1,base1); continue; } //转化成10进制的值 long long value = http://www.mamicode.com/0LL;>UVa 355 - The Bases Are Loaded
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。