信息奥赛一本通(1231:最小新整数)
生活随笔
收集整理的這篇文章主要介紹了
信息奥赛一本通(1231:最小新整数)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1231:最小新整數(shù)
時(shí)間限制: 1000 ms ??? ??? 內(nèi)存限制: 65536 KB
提交數(shù): 5198 ??? 通過數(shù): 2886
【題目描述】
給定一個(gè)十進(jìn)制正整數(shù)n(0<n<1000000000),每個(gè)數(shù)位上數(shù)字均不為0。n的位數(shù)為m。
現(xiàn)在從m位中刪除k位(0<k<m),求生成的新整數(shù)最小為多少?
例如: n=9128456,k=2,則生成的新整數(shù)最小為12456。
【輸入】
第一行t, 表示有t組數(shù)據(jù);
接下來t行,每一行表示一組測(cè)試數(shù)據(jù),每組測(cè)試數(shù)據(jù)包含兩個(gè)數(shù)字n,k。
【輸出】
t行,每行一個(gè)數(shù)字,表示從n中刪除k位后得到的最小整數(shù)。
【輸入樣例】
2 9128456 2 1444 3【輸出樣例】
12456 1【分析】
? ? ? ? 這道題和刪除問題類似,從前向后查找,刪除降序的第一個(gè)數(shù)字,比如,樣例1,9128456,刪除2位,顯然,第一步,刪除9,然后再刪除8;而樣例2中不存在降序,則依次刪出最后一個(gè)元素。
【參考代碼】
#include <stdio.h> #include <string.h> #define N 101 char n[N]; int main() {int i,j,len,t,k;scanf("%d",&t);while(t--){scanf(" %s %d",n,&k);len=strlen(n);while(k--){for(i=0;i<len-1;i++){if(n[i]>n[i+1]){for(j=i;j<len-1;j++)n[j]=n[j+1];break;}}len--;}n[len]='\0';printf("%s\n",n);}return 0; }http://ybt.ssoier.cn:8088/problem_show.php?pid=1231
總結(jié)
以上是生活随笔為你收集整理的信息奥赛一本通(1231:最小新整数)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1317:【例5.2】
- 下一篇: OpenJudge NOI 1.5 15