学做软件的网站,西安北郊做网站公司,深圳网站建设忧化,江西城乡建设培训中心网站这道题重点考察的就是我们的大数打印#xff0c;因为如果按照普通的整形去循环打印的话#xff0c;碰见n10的情况下就会超出整形的范围了#xff0c;所以我们使用字符串进行打印#xff0c;确切的说是使用字符进行打印#xff0c;代码如下所示#xff1a;
public static…这道题重点考察的就是我们的大数打印因为如果按照普通的整形去循环打印的话碰见n10的情况下就会超出整形的范围了所以我们使用字符串进行打印确切的说是使用字符进行打印代码如下所示
public static void printNumDigits( int n){if (n1){return;}char[] number new char[n];printDiverseNumDigits(number,0);}private static void printDiverseNumDigits(char[] number, int digit) {if (digitnumber.length){ // 这块比较重要是递归的推出条件printNumber(number);return;}for (int i 0; i 10; i) {number[digit] (char) (i 0); // 这块就是固定高位然后让下面的低位先去顺序打印printDiverseNumDigits(number,digit1);}}private static void printNumber(char[] number) {int index 0;while (indexnumber.length number[index]0){index;}while (indexnumber.length){System.out.print(number[index]); // 因为是char所以不换行打印}System.out.println();}