package Maths;/** Find the number of digits in a number. */public class NumberOfDigits {public static void main(String[] args) {int[] numbers = {0, 12, 123, 1234, -12345, 123456, 1234567, 12345678, 123456789};for (int i = 0; i < numbers.length; ++i) {assert numberOfDigits(numbers[i]) == i + 1;assert numberOfDigitsFast(numbers[i]) == i + 1;assert numberOfDigitsFaster(numbers[i]) == i + 1;assert numberOfDigitsRecursion(numbers[i]) == i + 1;}}/*** Find the number of digits in a number.** @param number number to find* @return number of digits of given number*/private static int numberOfDigits(int number) {int digits = 0;do {digits++;number /= 10;} while (number != 0);return digits;}/*** Find the number of digits in a number fast version.** @param number number to find* @return number of digits of given number*/private static int numberOfDigitsFast(int number) {return number == 0 ? 1 : (int) Math.floor(Math.log10(Math.abs(number)) + 1);}/*** Find the number of digits in a number faster version.** @param number number to find* @return number of digits of given number*/private static int numberOfDigitsFaster(int number) {return number < 0 ? (-number + "").length() : (number + "").length();}/*** Find the number of digits in a number using recursion.** @param number number to find* @return number of digits of given number*/private static int numberOfDigitsRecursion(int number) {return number / 10 == 0 ? 1 : 1 + numberOfDigitsRecursion(number / 10);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。