寻找最大数(nyoj)

这道题水了。

思想很简单

就是每次你要找最大的一个数

例如59846679992495  9

第一个数是9  最后一个应该是9 + 1

第二个....9 9 +1+1

......9 9+1+1+1

9 9+1+1+1+1

9 9+1+1+1+1+1

m+1+j(第几个大数)

 
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
	int n,m;
	char a[105];	
	char maxd[105];
	scanf("%d",&n);
	getchar();
	while(n--){
	 memset(a,0,sizeof(a));
	 memset(maxd,0,sizeof(maxd));
	 scanf("%s %d",&a,&m);
	 int flag=0;
	 int len=strlen(a);
	// cout << len <<endl;
	 maxd[0]=a[0]; //存最大值
	 for(int j=0;j<len-m;j++){  
	  for(int i=flag+1;i<m+j+1;i++){
	      if(maxd[j]<a[i]){ //更新最大值
	      	flag=i;
			maxd[j]=a[i];   
		//	cout << maxd[j]   	 <<endl;
		  }
	 }
    }
    for(int i=0;i<len-m;i++)
    printf("%c",maxd[i]);
    putchar('\n');
	}
	return 0;
}        

猜你喜欢

转载自blog.csdn.net/blackneed/article/details/80084458