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

时间:2014-05-07 23:32:29

标签: c

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

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

如何合并它们才能获得combine(a, b) == 123456

3 个答案:

答案 0 :(得分:5)

您可以将a乘以10到幂的N,其中N是b中的位数,然后将该数字加到b。< / p>

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

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

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

答案 1 :(得分:1)

首先找到&#34; b&#34;中的位数。 这可以按如下方式完成:

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;

&#34; C&#34;是结果。 你必须确保&#34; c&#34;没有超出界限。

答案 2 :(得分:0)

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;
}