将dec转换为二进制,八进制和十六进制问题

时间:2018-11-15 15:05:14

标签: c++ c++11 binary hex octal

任务在Hackerrank上。以二进制,八进制和十六进制打印3个数字。数字必须小于10 ^ 6或结束程序。有2个测试用例。我已经完成了测试用例#0,但是我不知道要为测试用例#1解决什么问题。我想我已经完成了任务要我完成的所有事情。你能帮我解决这个问题吗?

  

测试用例#0

     

输入:2 8 15

     

输出:10 2 2

     

1000 10 8

     

1111 17 F

#include <bitset>
#include <string>
using namespace std;

string decimal_to_binary(int n)
{
       string m;
       while (n >= 1) 
       {
             m = static_cast<char>((n%2) + '0') + m;
             n /=2;
       }
       return m;
}

int main()
{
unsigned long long a,b,c;

    cin >> a >> b >> c;
    if(a > 1000000 || b > 1000000 || c > 1000000) {return 0;}
    else{ 
    cout << std::dec << decimal_to_binary(a) << " " << std::oct << a << " " 
<< std::uppercase << std::hex << a << '\n'
        << std::dec << decimal_to_binary(b) << " " << std::oct << b << " " 
<< std::uppercase << std::hex << b << '\n'
        << std::dec << decimal_to_binary(c) << " " << std::oct << c << " " 
<< std::uppercase << std::hex << c << '\n';
    }
}

编辑:在下面粘贴实际任务说明

  

编写一个程序,将数字转换为二进制,八进制和   十六进制。

     

输入格式

     

标准输入设置为多个数字(记录在   十进制数)小于10 ^ 6。

     

约束

     

     

输出格式

     

对于标准单行输入中的每个数字   输出,输出三个数字(它们之间一个间隔)-a   以二进制,八进制和十六进制数字记录此数字   系统。

     

样本输入0

     

2 8 15样本输出0

     

10 2 2 1000 10 8 1111 17 F

0 个答案:

没有答案