本文主要是介绍NYOJ 448 最大数 贪心,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NYOJ 448 最大数
用贪心,需要输出的长度为,总长度减去删除个数,然后从左往右一个个找出最大的。。。水过
代码
#include <stdio.h>
#include <string.h>int t;
char a[105];
int m;
int n;
int max_i;
char find_max(char *a, int n,int q)
{char max = '0';int i;for (i = q; i <= n + q; i ++){if (max < a[i]){max = a[i];max_i = i;}}a[max_i] = '0';max_i ++;return max;
}
int main()
{int t;scanf("%d",&t);getchar();while (t --){max_i = 0;scanf("%s%d",a, &m);n = strlen(a) - m;while (n) {printf("%c", find_max(a, strlen(a) - n - max_i, max_i));n --;}printf("\n");}return 0;
}
这篇关于NYOJ 448 最大数 贪心的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!