OJ_1080 进制转换
来源:互联网 发布:怎么查看电脑的端口 编辑:程序博客网 时间:2024/06/03 12:28
#include <iostream>#include <vector>using namespace std;void stringToInt(string s,vector<int> &ve){ for(int i=0;i<s.size();i++) { int k=0; if(s[i]>='A') { k=s[i]-'A'+10; }else { k=s[i]-'0'; } ve.push_back(k); }}void change(vector<int> ve,vector<int> &result,int m,int n){ int i=0; while(i<ve.size())// 当该数除为0时,即全部为0 { int r=0;// 每次的余数 for(int j=i;j<ve.size();j++) { int t=m*r+ve[j];// 上一位的余数+该位上的数字 int div=t/n;// n进制 ve[j]=div;// 保存该位除法的商 r=t%n;// 该位的余数 } // 一次除法计算完毕后 result.push_back(r);// 将该次取余值保存 while(ve[i]==0)i++;// 把前置0略去,全部为0时i增加到ve.size()即跳出循环 } }void output(vector<int> v){ for(int i=v.size()-1;i>=0;i--) { if(v[i]>=10) { char c=v[i]-10+'a';// 输出为小写 cout<<c; }else cout<<v[i]; } cout<<endl; }void func(){ int m,n; while(cin>>m>>n) { string s; cin>>s; vector<int> ve; stringToInt(s,ve); vector<int> result; change(ve,result,m,n); output(result); } }int main(int argc, char *argv[]){ //printf("Hello, world\n");func();return 0;}
除模取余
- 题目描述:
将M进制的数X转换为N进制的数输出。
- 输入:
输入的第一行包括两个整数:M和N(2<=M,N<=36)。
下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。
- 输出:
输出X的N进制表示的数。
- 样例输入:
16 10F
- 样例输出:
15
- 提示:
输入时字母部分为大写,输出时为小写,并且有大数据。
0 0
- OJ_1080 进制转换
- 进制转换,类型转换
- 进制转换(进制转换)
- 进制转换-----十进制转换成二进制
- 进制的转换,八进制转换十六进制
- 进制转换,运算符,类型转换,
- 十进制转换2-9进制转换
- 进制转换
- 无限进制转换
- 进制转换
- 进制转换
- 进制转换
- 【整理】进制转换
- 进制转换
- 七、进制转换
- 进制转换
- 进制转换
- 进制转换
- mangos 消息广播
- Trie树 - TeraSort 里 自定义 partition 时乃至
- .Net MVC浅尝辄止
- 编译webrtc
- 怎样通过浏览器判断app是否已安装
- OJ_1080 进制转换
- Linux shell script
- Android利用Volley异步加载数据(JSON和图片)完整示例
- tq210 nandflash 驱动
- target runtime Apach Tomcat v6.0 is not ...
- select option标签
- Linux 内核模块中socket占用端口不能释放解决办法
- OJ_1081 递推数列
- iOS Timer--你不知道的那些事儿