題目描述:python
描述 定義一個字符串序列 s[1]="1",s[2]="2", ..., s[n] = 數字 n 轉化成字符串後的結果 輸出 s[1] 到 s[n] 中,(字典序)最大的那個字符串 輸入 輸入包含多組數據。 每組數據輸入一行一個整數 n(n<=1e6)。 輸入以 n=0 結束。 輸出 對於每組數據,輸出一行一個整數表示答案 樣例輸入 9 19 871 0 樣例輸出 9 9 99
關鍵點:數組
把數字轉化爲字符串,而後按照字典的順序輸出最大值
本人代碼:spa
#include <stdio.h> # define Max 7 int main(void) { int a, temp, head; int A[Max+1] = {0}; scanf("%d",&a); while (a !=0 ) { int A[Max+1] = {0}; int len = 0; int i = Max; // 轉化爲數組 while(a > 0) { temp = a%10; A[i] = temp; if (A[i] != 0) { len++; } i--; a /= 10; head = i+1; // 求出第一位不爲零的位置 } // 判斷字典數最大的值 // 若只有一位,則直接輸出 if (len == 1) { printf("%d\n",A[Max]); } // 若大於1位,且最高位不爲9,則輸出len-1位9 else if (A[head] != 9 && len!=1) { for (i=1; i<len; i++) { printf("9"); } printf("\n"); } // 若 大於一位,且最高位爲9,則輸出最高位,以後再判斷次高位 else if (A[head] == 9 && len!=1) { for (i=head; i<=Max; i++) { printf("%d",A[i]); } printf("\n"); } scanf("%d",&a); } return 0; }