杭电oj——有关进制的问题 (1)
来源:互联网 发布:centos phpbrew 编辑:程序博客网 时间:2024/05/04 15:44
1720:A+B Coming
问题:16进制输入,10进制输出
C语言提供了一个利器 %x(或%X)--------------读入16进制整数
#include <iostream>using namespace std;int main(){ int a,b; while(scanf("%x%x",&a,&b)!=EOF) { printf("%d\n",a+b); } return 0;}1877:又一版 A+B
问题:输入m,A,B。输出A+B的m进制
思路:除m取余,倒过来输出,一定要考虑A+B=0,输出0的情况
#include <iostream>#include <vector>using namespace std;int main(){ int m,a,b,i,s; vector<int> v; while(scanf("%d%d%d",&m,&a,&b)!=EOF &&(m!=0)) { s=a+b; if(s==0) { cout<<"0"<<endl; continue; } v.clear(); while(s!=0) { v.push_back(s%m); s/=m; } for(i=v.size()-1;i>=0;i--) { cout<<v[i]; } cout<<endl; } return 0;}2031:进制转换
problem
输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
解题思路:
如果输入的十进制数为负数,就先按正数来算,再在结果前加一个负号。如果转化的进制大于十,就用C语言的利器,%X转化(%x转化为a,b......)输出
#include<iostream>#include <cmath>#include<vector>using namespace std;int main(){ int a,m,i; vector<int> vec; while(cin>>a>>m) { if(a<0) { cout<<"-"; } a=abs(a); vec.clear(); while(a!=0) { vec.push_back(a%m); a/=m; } for(i=vec.size()-1;i>=0;i--) { if(vec[i]>=10) { printf("%X",vec[i]); } else { cout<<vec[i]; } } cout<<endl; } return 0;}
0 0
- 杭电oj——有关进制的问题 (1)
- lightoj 1045 有关进制的二三事
- codeforce 13 A && hdu 2031 有关进制的转化
- 杭电OJ 1083——courses(二分图的匹配问题!匈牙利算法解答)
- 杭电OJ——1210 Eddy's 洗牌问题
- 【杭电oj】2076 - 夹角有多大(水)
- 杭电oj(Java版)—— 2602 Bone Collector—— 01背包问题
- 杭电OJ——1248 钱币兑换问题(母函数解答)
- 杭电OJ——1233 还是畅通工程(最小生成树问题)
- 【杭电-oj】-2076-夹角有多大
- 杭电OJ——1283 最简单的计算机
- 杭电OJ——1272 小希的迷宫
- 杭电OJ——1283 最简单的计算机
- 我的杭电oj之旅——1000
- 我的杭电oj之旅——1001
- 我的杭电oj之旅——1002
- 我的杭电oj之旅——1003
- 杭电 OJ 提交代码需要注意的问题
- Android OpenCV 实例笔记1--Jni及OpenCV环境的搭建
- 剑指Offer:树的子结构
- 修改pip源加速pip安装
- kafka简介
- 《HTML5从入门到精通中文学习教程》读书笔记1
- 杭电oj——有关进制的问题 (1)
- hdu5411矩阵快速幂
- hdu 5792 World is Exploding 2016 Multi-University 5
- 关于C#向服务器请求json数据并解析
- CUDA入门(四)Visual Profiler
- HDU 3652 数位DP
- 含有listview的界面实现左右滑动监听
- 操作系统学习笔记--系统启动流程
- JAVA集合容器---Hashtable