輸入數字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比較慢...