如何在C中拆分两位数字
假设我有一个像21这样的数字,我想将它拆分,以便得到数字2和1。
为了得到1,我可以做1 mod 10.所以基本上,最后一个数字可以通过使用mod 10找到。
为了获得2,我可以做到(21 – (1 mod 10))/ 10。
以上技术适用于任何2位数字。
但是,让我添加一个进一步的约束,该mod只能用于2的幂。然后不能使用上述方法。
那可以做些什么呢?
2 == 23 / 10 3 == 23 - (23 / 10) * 10
要获得2你就可以做到
int x = 23 / 10;
记住,整数除法会丢弃小数部分(因为它不能用整数表示)。
模数除法(和常规除法)可用于任何幂,而不仅仅是2的幂。 另外,2的幂与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 ...
如果你再加一点,你可以很容易地把它写成一个循环。
关于什么
x%10表示第二个数字,x / 10表示第一个数字?