文章
25
粉丝
40
获赞
2
访问
20.1k
评测值:173先过
如果只过一半,应该是大整数没满足
可以试试10个9
//都是bigInt的转换
//十进制转二进制,二进制转十进制
//有多次输入
//都是根据int的形式下的原理进行模拟
//类似与高精度
//十进制转二进制,求back%2,other/2获得下一次
//二进制转十进制,所有ou位均*2,每轮+ou.front
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
bool isZero(vector<int> de){
for(auto i: de) {
if(i != 0) return false;
}
return true;
}
vector<int> tran(string str){
vector<int> de(1000);
vector<int> bi;
vector<int> ou(1000,0);
int num;
int len = str.size();
for(int i = 0; i<=len-1; i++){
if(str[i]>='0'&&str[i]<='9'){
num = str[i] - '0';
de.push_back(num);
}
}
//十进制转二进制
while(!isZero(de)){
num = de.back()%2;
for(int i = 0; i<=de.size()-1; i++){
de[i+1] += de[i]%2*10;
de[i] /= 2;
}
bi.push_back(num);
}
//输出不能是int类型的,位数不够
//字符串二进制转字符串十进制,类高精度运算
//每一位都*2
//ou初...
登录后发布评论
暂无评论,来抢沙发