劍指offer 17 列印1到最大的n位數

2021-09-12 17:56:31 字數 495 閱讀 1138

這道題題目為輸入數字n,按順序列印出1最大的n位十進位制數。

解題思路為:對於列印出1最大的n位十進位制數,可以採取在數字前面補0的方法,其實n位十進位制數就是n個從0到9的全排列。在列印的時候只需不列印數字前面的0即可。

用遞迴實現**如下:

#include#include#include#includevoid printnumber(char *number)

} printf("\t");

}void print(char* number, int length, int index)

for (int i = 0; i < 10; ++i) }

void printoneton(int n)

number[n] = '\0';

for (int i = 0; i < 10; ++i)

free(number);

number = null;

}

劍指offer17 列印從1到最大的n位數

題目 輸入數字n,按順序列印從1到最大的n為十進位制數。比如輸入3,則列印出1,2,3一直到最大的3位數999。看到這個問題之後,最容易想到的辦法就是先求出最大的n位數,然後用乙個迴圈從1開始逐個列印。於是很容易寫出以下 void print1tomaxofndigits 1 int n for i...

劍指 Offer 17 列印從1到最大的n位數

題目 輸入乙個位數n,把1到最大的n位數 如當n 2時,為99 放到int裡返回。public int printnumbers int n 思路 1.直接用for來放入,不考慮大數問題。不考慮大數問題 public int printnumbers int n return array 2.當n變...

劍指 Offer 17 列印從1到最大的n位數

輸入數字n,按順序列印出從 1 到最大的 n 位十進位制數。比如輸入 3,則列印出 1 2 3 一直到最大的 3 位數 999。示例 1 輸入 n 1 輸出 1,2,3,4,5,6,7,8,9 越來越覺得越是簡單的問題,遇到大數的時候就越難想出來處理的方式,感覺像是一種思維上的定式限制了我會用別的方...