首页 > 解决方案 > 将 dec 转换为二进制、八进制和十六进制问题

问题描述

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

测试用例 #0

输入:2 8 15

输出:10 2 2

1000 10 8

1111 17楼

#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 的数(以十进制数系统记录)。

约束

.

输出格式

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

样本输入 0

2 8 15 样本输出 0

10 2 2 1000 10 8 1111 17 F

标签: c++c++11binaryhexoctal

解决方案


推荐阅读