用贪心解决删数问题
作者:互联网
任务描述
有一个长度为n(n <= 240)的正整数,从中取出s(s < n)个数,使剩余的数保持原来的次序不变,求这个正整数经过删数之后最小是多少。
输入格式
第一行输入n和s
输出格式
输出一个整数
输入样例
178543 4
输出样例
13
1 #include<stdio.h> 2 #include<string.h> 3 4 /* 5 样例: 6 178543 4 7 3849729 5 8 */ 9 int main() 10 { 11 char a[240];//使用字符数组来存数字 直接使用strlen函数计算长度 12 int s; 13 scanf("%s %d", a, &s); 14 int len = strlen(a); 15 while(s != 0) 16 { 17 int i = 0; 18 //计算递增序列的最后一个字符 19 while(a[i] <= a[i+1]) 20 i++; 21 //删除该最后一个字符 22 while(i < len-1) 23 { 24 a[i] = a[i+1]; 25 i++; 26 } 27 len--; 28 s--; 29 } 30 for(int i = 0; i < len; i++) 31 printf("%c", a[i]); 32 return 0; 33 }
标签:13,int,样例,178543,删数,解决,include,strlen,贪心 来源: https://www.cnblogs.com/sheep-cloud/p/14813468.html