1.先来看怎么求一个整型数的位数。既然是整型,它除以10一定没有小数。那么依照此原理,将这个数除以10,直到这个数小于零,每除一次可以用count自加来计数,出完时将累加得的count输出,就是这个整型数的位数。
2.再来看看如何用switch分支语句来输出各个数:先看看switch的语法。
switch(表达式)
{
case 常量:语句1;
case 常量:语句2;
......
case 常量:语句n;
default: 语句n+1
}
表达式应该为整数类型,case后面跟的是常量,相当于一个具体的标签,如果遇到这个标签,就执行这个标签后面的语句。default后的语句什么情况下执行?当没有碰到case中的常量时,就执行。有个注意的点,每个case子句后都应该有一个break语句,表示该分支执行完毕,跳出来。
在这个具体的情况下,表达式为count,为数的位数。当位数为分别为6 5 4 3 2 1时就对应应该case子句。
例如位数为六的情况,看看怎么输出各个位的数:
1.先输出最高位的数,就用这个数除以100000,得到最高位,输出。
2.用这个数mod100000,就得到把这个数最高位丢掉后,剩下的数。
3.用剩下的数除以10000,得到万位,输出。
4.用剩下的数mod10000,得到去掉前两位后,剩下的数。
5.以此类推。
总结一下:一个整型数除以它同位的1000......,,可以得到它的第一位数。一个整型数,mod于它同位的1000......可以得到丢下第一位后,剩下的数。
3.如何逆序输出这些数?
1.将这个数mod10,得到最后一位(想想是不是?),直接输出。
2.将这个数/10再mod10,/10就是把刚才的最后一位丢掉,再mod10就是输出当前的最后一位,这次输出的是不是就是倒数第二位?
3.以此类推。