天天看點

倍數 17(春季每日一題 45)

在意識到軟體開發有很多錢可賺之後,農夫約翰開辦了一家小型企業,為當地農業行業的客戶編寫簡短的程式。

他的第一個程式設計任務對他來說似乎非常簡單:他的客戶希望他編寫一個程式,該程式将數字 作為輸入,并将 作為輸出。

約翰剛剛寫完這個簡單的程式,他的客戶就驚慌失措的給他打電話,告訴他輸入和輸出都必須用二進制數字表示,而且這些數字可能很大。

請幫助約翰完成他的程式設計任務。

給定一個用二進制表示并且不超過 位的輸入數字 ,輸出二進制表示下的 。

輸入格式

一個不超過 位的二進制數字 。

輸出格式

輸出二進制表示下的 。

輸入樣例:

10110111      

輸出樣例:

110000100111      
#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;
}