有时候我们会需要获取任意一个int值(或者其他值)的位数。别问我什么时候需要,当你需要的时候那就是需要的时候。
那么我们现在用java实现一下这个小功能
Talk is cheap, Let`s code!
class SizeOfInt {
final static int[] sizeTable = { 9,99,999,9999,99999,999999,9999999,
99999999,999999999,Integer.MAX_VALUE};
static int sizeOfInt(int x) {
for (int i = 0; ; i++){
if (x <= sizeTable[i]){
return i + 1;
}
}
}
//测试一下
public static void main(String[] args) {
System.out.println("请输入一个int数值(注意int数值的取值范围):");
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
System.out.println("您输入的是一个"+sizeOfInt(a)+"位数!");
}
}
程序非常简单:
- 首先定义一个数组,在里面放上每一位数的最大数,直到int所支持的最大值。比如9是一位数里面最大的,99是二位数里面最大的,以此类推。
- 将输入的int数值与提前定义好的数组对比,从一位数开始对比,如果比一位数大便继续对比二位数(所输入的值得位数与数组的下标关联,一位数下标为0,二位数下标为1...),以此类推,将【下标+1】输出即为所输入的int值得位数。