如何组合2个整数以获得1?

我搜索了这个,但我没有找到C语言中这个问题的明确答案。

想象一下,我有一个int a = 123而另一个int b = 456

如何组合它们以获得combine(a, b) == 123456

您可以乘以10到10的幂,其中N是b的位数,然后将该数字加到b

效率较低,您可以将两者都转换为字符串,将它们连接起来,然后将该字符串解析为整数。

在任何一种情况下,都有可能出现整数溢出。

如果允许b为负数,则必须进一步定义所需结果。

首先找到“b”中的位数。这可以通过以下方式完成:

 int find_num_digits(int b) { int i = 0; while (b > 0) { b = b/10; i++; } return i; } 

然后做:c = a * 10 ^ find_num_digits(b)+ b;

结果是“c”。 你必须确保“c”不会超出范围。

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

更一般地说:

 int combine(int a, int b) { if (b==0) return a; return combine(a, b/10)*10+ b%10; }