|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <cmath>
string to23(string x)
{
long long int ten = 0;
vector<int> nums;
int num;
for (int i = x.length()-1; i>=0; i--)
{
ten = ten + ((x[i])-'0') * pow(2, x.length()-i-1);
}
while (ten != 0)
{
num = ten % 3;
nums.push_back(num);
ten = ten / 3;
}
string res = "";
for (int i = nums.size() - 1; i >= 0; i--)
{
res = res + to_string(nums[i]);
}
return res;
}
int main()
{
int n;
cin >> n;
vector<int> nums1;
cin.ignore();
int num1;
for (int i = 1; i <= n; i++)
{
cin >> num1;
nums1.push_back(num1);
}
for (int i = 0; i < nums1.size(); i++)
{
cout << to23(to_string(nums1[i])) << endl;
}
return 0;
}描述
输入一个2进制的数,要求输出该2进制数的3进制表示。
在3进制的表示中,只有0,1,2三种符号
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字
符串长度至少是1,至多是64
输出
n行,每行输出对应一个输入。为什么错了 |
|