这是学校的家庭作业,我需要做一个计算器
我如何将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时。
问题还不清楚,但从你的信息来看,你可能想要这样:
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
),它只考虑正值,不考虑第一位为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;
}