给定的int取各个数字位(digit)的方法总结

有时候需要取int的各个位的digit, 再次做个简短总结:
1. 由于int不像String可以进行for循环遍历, 所以int中取各个位的数字往往是通过while循环来实现.
循环条件的话,没有特殊要求往往可以用num!=0,来依次遍历每个数字的位,在循环内num每次对10作除法,num=num / 10;那么取每位的数字就是对10取模了: digit = num % 10;
2. 有时候我们要的最后数字是个位数, 那么就需要用num / 10 != 0来作为while循环的条件了。
3. 有时候我们判断一个数字是否是palindrome的时候,我们要分别从高位跟低位来进行判断数字是否相同;那么我们需要分别取到高位跟低位对应的数字. 假设最高位为left, 最低位为right。 给定数字为num:
1. 首先我们要找到最高位的被除数divide;初始div=1; 可以用一个while循环来求得最高位对应的divide;
2. 最高位的数字left=num / div; 最低位为 right = num %10;
3. 然后比较完left跟right,需要比较num数字中次高位,跟次低位, 我们要找到对应的num跟divide。
num = (num % div) / 10, div = div / 100;

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s