C++ 如何用数学方法组合数字?
有一种方法可以处理十进制数C++ 如何用数学方法组合数字?,c++,C++,有一种方法可以处理十进制数 int64_t a = 144; int64_t b = 5; a = 10 * a + b; // a = 1445 但是如果b大于数字9,例如45或147,那么该方法不起作用 如何使它与任何数字或至少三位数字一起工作。您可以使用循环: int64_t intConcat(int64_t a, int64_t b) { if (b == 0) { return a * 10; } int64_t t = b;
int64_t a = 144;
int64_t b = 5;
a = 10 * a + b;
// a = 1445
但是如果b大于数字9,例如45或147,那么该方法不起作用
如何使它与任何数字或至少三位数字一起工作。您可以使用循环:
int64_t intConcat(int64_t a, int64_t b)
{
if (b == 0)
{
return a * 10;
}
int64_t t = b;
while (t != 0)
{
a = a * 10;
t = t / 10;
}
return a + b;
}
您可以使用循环:
int64_t intConcat(int64_t a, int64_t b)
{
if (b == 0)
{
return a * 10;
}
int64_t t = b;
while (t != 0)
{
a = a * 10;
t = t / 10;
}
return a + b;
}
尽管有更好的方法来实现这一点,但这里有一个可能的解决方案:
for (int64_t tmp = b; tmp > 0; tmp /= 10)
a *= 10;
a += b;
但是要注意溢出。尽管有更好的方法来实现这一点,但这里有一个可能的解决方案:
for (int64_t tmp = b; tmp > 0; tmp /= 10)
a *= 10;
a += b;
但是要注意溢出。使用十进制对数定义b的长度,然后将a乘以10次幂长度ba=10^数字的个数\U\U\U\U*a+b如果其中一个数字为负数,结果应该是什么?使用十进制对数定义b的长度,然后将a乘以10次幂长度ba=10^数字的个数\U\U\U\U\U\U*a+b应该是什么如果其中一个数字为负数,结果如何?