ZJUT_OJ1185

 

Description:

将十进制整数转换成二进制数。

 

Input:

输入数据中含有不多于50个整数n(-2^31&ltn&lt2^31)。

Output:

对于每个n,以11位的宽度右对齐输出n值,然后输出“-->”,再然后输出二进制数。每个整数n的输出,独立占一行。

Sample Input:

2
0
-12
1

Sample Output:

          2-->10
          0-->0
        -12-->-1100
          1-->1
 
 
#include <cstdlib>
#include <iostream>
#include <string>
#include <iomanip>
#include <algorithm>

using namespace std;

int main(int argc, char *argv[])
{
    int n;
    
    while(cin >> n)
    {
        string str;
        
        if(n == 0)
        {
            cout << setw(11) << n << "-->0" << endl;
            continue;
        }
        
        for(int i=n; i; i /=2)
            str += (i %2) ? '1' : '0';
        
        reverse(str.begin(), str.end());
        
        cout << setw(11) << n << ((n > 0)? "-->" : "-->-") << str << endl;
    }

    return EXIT_SUCCESS;
}
 

 

你可能感兴趣的:(String,input,output)