列印從1到最大的n位數

2022-08-30 12:39:13 字數 889 閱讀 9518

輸入數字n,按順序列印出從1最大的n位十進位制數。比如輸入3,則列印出1、2、3一直到最大的3位數即999。

先找出最大值,然後遍歷輸出

public void print1tomaxofndights1s(int n) 

for (i = 1; i < number; i++)

system.out.println();

}

陷阱:n過大時是大數問題,不能簡單用int或者long資料輸出,需要採用字串或者陣列表達大數。

採用字串模擬加法

//解決1 模擬加法

public void print1tomaxofndigits02(int n)

char number = new char[n];

for (int k = 0; k < number.length; k++)

while (!increment(number))

}private void printcharnumber(char number)

if (!isbeginning0)

}system.out.println();

}//對字串進行加1操作,當number達到最大值後返回為true

//低位加1 到10進製

private boolean increment(char number)

if (nsum >= 10)

ntackover = 1;

nsum -= 10;

number[i] = (char) (nsum + '0');

} else

}return false;

}

列印從1到最大的n位數

題目 輸入數字n,順序列印從1到最大n位的十進位制數,例如輸入3,列印1到999 includebool increment char number void printnumber char number void printtomaxofndigitsrecursively char numbe...

列印從1到最大的n位數

void print1tomaxofndigits int n 上面的 有個最嚴重的問題 沒有關注n的範圍 當輸入的n很大時,我們求最大的n位數用int或者long long都會溢位。也就是我們需要考慮大數問題。因為數字最大是n位,所以我們需要用乙個長度是n 1的字串 字串最後一位放 0 當實際的數...

列印從1到最大的n位數

題目 輸入數字n,按順序列印出從1最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數即999。思路 首先注意這是個大數問題,n很大的時候c 的int和long long都吃不消,所以數字的儲存要用字串 這裡我模擬了大數相加,只不過每次都是加1 另外要注意列印的問題,cout比較慢...