申请添加数据
查看原帖
申请添加数据
589286
crocip楼主2024/10/29 22:31

代码如下:

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,a[25],b[25],c[25],w[25],maxn=0,flag=1;
	cin >> n;
	for(int i = 1;i <= n;i++){
		scanf("%d",&a[i]);
		if(a[i]) flag=0;
		c[i]=a[i];
		b[i]=a[i];
		int j=0;
		while(c[i]){
			c[i]/=10;j++;
		}
		w[i]=j;
		maxn=max(maxn,j);
	}
	if(flag){//可删去,我以为有000 
		cout <<"0";
		return 0;
	}
	for(int i = 1;i <= n;i++)//冒泡加权
		for(int j = 1;j <= maxn-w[i];j++){
			b[i]*=10;
			b[i]+=4;//***
		}
			
		
	for(int i = 1;i <= n;i++){
		for(int j = 1;j < n;j++){
			if(b[j]<b[j+1]){
				int tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
				tmp=b[j];
				b[j]=b[j+1];
				b[j+1]=tmp;
			}
		}
	}	
	for(int i = 1;i <= n;i++)
		printf("%d",a[i]);
}

hack了一个数据过的,

理论上***的地方写的不太对,但还是氵过去了;

建议:加上

4

114 514 1919 1142

望采纳(不过其实加不加可能问题不大?感觉只有我这种算法会被卡hhh)

2024/10/29 22:31
加载中...