首页 > 代码库 > SDUT OJ 进制转换
SDUT OJ 进制转换
进制转换
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入一个十进制数N,将它转换成R进制数输出。
输入
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
输出
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
示例输入
7 223 12-4 3
示例输出
1111B-11
就因为0的时候的剪枝,让我挂了WA 2次,0的时候无法不断取余,不进入那个循环!导致不输出结果!
#include <iostream>#include <string>#include <stdio.h>#include <string.h>#include <map>#include <stack>#include <algorithm>#include <ctype.h>using namespace std;int main(){ int n, r, dd, ff; int i, j; int flag; while(scanf("%d %d", &n, &r)!=EOF) { flag=0; stack<int>q; if(n==0) { printf("0\n"); continue; } if(n<0) { flag=1; n=-n; } while(n!=0) { dd = n%r; q.push(dd); n/=r; } if(flag==1) { printf("-"); } while(!q.empty()) { ff=q.top(); q.pop(); if(ff>=10) { printf("%c", ff+55); } else { printf("%d", ff); } } printf("\n"); } return 0;}
SDUT OJ 进制转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。