在意识到软件开发有很多钱可赚之后,农夫约翰开办了一家小型企业,为当地农业行业的客户编写简短的程序。

他的第一个编程任务对他来说似乎非常简单:他的客户希望他编写一个程序,该程序将数字 倍数 17(春季每日一题 45)_高精度 作为输入,并将 倍数 17(春季每日一题 45)_二进制数字_02 作为输出。

约翰刚刚写完这个简单的程序,他的客户就惊慌失措的给他打电话,告诉他输入和输出都必须用二进制数字表示,而且这些数字可能很大。

请帮助约翰完成他的编程任务。

给定一个用二进制表示并且不超过 倍数 17(春季每日一题 45)_软件开发_03 位的输入数字 倍数 17(春季每日一题 45)_高精度,输出二进制表示下的 倍数 17(春季每日一题 45)_二进制数字_02

输入格式
一个不超过 倍数 17(春季每日一题 45)_软件开发_03 位的二进制数字 倍数 17(春季每日一题 45)_高精度

输出格式
输出二进制表示下的 倍数 17(春季每日一题 45)_二进制数字_02

输入样例:

10110111

输出样例:

110000100111

样例解释
给定数字 倍数 17(春季每日一题 45)_高精度_09 在十进制表示下为 倍数 17(春季每日一题 45)_高精度_10

倍数 17(春季每日一题 45)_高精度_11,在二进制表示下为 倍数 17(春季每日一题 45)_软件开发_12


#include<iostream>
#include<vector>

using namespace std;
string A;

vector<int> mul(vector<int> &a, int c){

vector<int> b;
int t = 0;
for(int i = 0; i < a.size() || t; i++){

if(i < a.size()) t += a[i] * c;
b.push_back(t % 2);
t /= 2;
}

return b;
}

int main(){

cin >> A;
vector<int> a, b;
for(int i = A.size() - 1; i >= 0; i--) a.push_back(A[i]-'0');

b = mul(a, 17);

for(int i = b.size()-1; i >= 0; i--) cout << b[i];

return 0;
}