概述
从N进制,转为M进制,当然,题目要求不高,所以边角工作没有做,超出十进制以后的转换因为没有定义相关的符号表示,所以会出错。
#include<iostream>
using namespace std;
int main()
{
int N,M;
string ns, ms;
int ni[1010], mi[1010];
int ti, ri, p, q, pm;
cin >> ns;
int i;
for (i = 0 ; ns[i] != 0; i ++){
ni[i] = ns[i] - '0';
}
ni[i] = -1;
N = 10; M = 2;
pm = 0;
while (ni[0] != 0){
p = 0;
q = 0;
ti = ni[p++];
while (ti < M && ni[p] != -1){
ti = ti * N + ni[p++];
}
ni[q ++] = ti / M;
ri = ti % M;
while (ni[p] != -1){
ti = ri * N + ni[p ++];
while (ti < M && ni[p] != -1){
ni[q ++] = 0;
ti = ti * N + ni[p++];
}
ni[q ++] = ti / M;
ri = ti % M;
}
ni[q] = -1;
mi[pm ++] = ri;
}
mi[pm] = -1;
for (pm --; pm >= 0; pm --){
ms.push_back((char)('0' + mi[pm]));
}
cout << ms;
}
最后
以上就是敏感帅哥为你收集整理的【Openjudge】十进制数字转二进制数的全部内容,希望文章能够帮你解决【Openjudge】十进制数字转二进制数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复