假设我有一个像21这样的数字,我想把它分开,以便得到数字2和1.
要获得1,我可以做1 mod 10.所以基本上,最后一位数字可以通过使用mod 10找到。
要获得2,我可以做到(21 - (1 mod 10))/ 10。
上述技术适用于任何2位数字。
但是,让我添加一个进一步的约束,该mod只能用于2的幂。然后不能使用上述方法。
那么可以做些什么?
答案 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为第一个?