如何在C中拆分两位数字

时间:2011-03-11 16:38:46

标签: c decimal

假设我有一个像21这样的数字,我想把它分开,以便得到数字2和1.

要获得1,我可以做1 mod 10.所以基本上,最后一位数字可以通过使用mod 10找到。

要获得2,我可以做到(21 - (1 mod 10))/ 10。

上述技术适用于任何2位数字。

但是,让我添加一个进一步的约束,该mod只能用于2的幂。然后不能使用上述方法。

那么可以做些什么?

3 个答案:

答案 0 :(得分:8)

2 == 23 / 10
3 == 23 - (23 / 10) * 10

答案 1 :(得分:1)

要获得2,你可以做到

int x = 23 / 10;

请记住,整数除法会丢弃小数部分(因为它不能用整数表示)。

模数除法(和常规除法)可用于任何幂,而不仅仅是2的幂。另外两个数字与两位数字不同。

分割三位数

int first = 234/100;
int second = (234/10)-first*10;
int third = (234/1)-first*100-second*10;

有一点工作,它也可能看起来像

int processed = 0;
int first = 234/100-processed;
processed = processed + first;
processed = processed * 10;
int second = 234/10-processed;
processed = processed + second;
processed = processed * 10;
... and so on ...

如果你再加一点,你可以很容易地把它写成一个循环。

答案 2 :(得分:0)

怎么样

x%10表示第二位数字 x / 10为第一个?