提问者:小点点

如何在C++中组合2个数字[封闭]


这是学校的家庭作业,我需要做一个计算器

我如何将2个整数合并为1,正如你们所看到的,我有一个这样的代码,但是每当我使用0或1时,整个事情就会分崩离析,

int combine(int a, int b) {
   int times = 1;
   while (times <= b)
      times *= 10;
   return a*times + b;
}

编辑

我需要能够得到10,当I,当A整数为1,B整数为0时。


共3个答案

匿名用户

问题还不清楚,但从你的信息来看,你可能想要这样:

int combine(int a, int b)
{
   return a * 10 + b;
}

请查看下面的评论以了解更多信息。

匿名用户

将数字转换为字符串连接字符串并将结果转换回整数:

int combine(int a, int b) {
   return std::stoi(std::to_string(a) + std::to_string(b));
}

匿名用户

考虑到您的方法,您可以计算第二个参数的位数,以便计算出第一个参数必须移位多少位置(示例)。 请记住,结果可能溢出(如果加法大于std::numeric_limits::max()),它只考虑正值,不考虑第一位为0的数字(即09):

template <typename T>
unsigned int numDigits(T value)
{
    int num = 0;
    if (value <= 0) num = 1;
    while (value) {
        value /= 10;
        num++;
    }
    return num;
}

template <typename T, typename V>
unsigned int combine(T a, V b) {
   return a*(std::pow(10,numDigits(b)))+b; 
}

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(何在|c++|中|组合|2个|数字|封闭)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?