IOT娘拿到了n个数字 � � a i ,他有一种奇妙的想法 题目描述 * 如果数字位数不同,则按数字位数从大到小排序 * 如果数字位数相同,则数字大小从小到大排序。 输入格式 第一行给出一个正整数 n ,第二行给出 n个正整数, 输出格式: 一行输出按照规则排列后的序列。请用C++编写代码
时间: 2023-05-27 13:06:42 浏览: 152
C++代码如下:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[1005];
bool cmp(int x,int y){
int tx=log10(x)+1,ty=log10(y)+1;
if(tx==ty){
return x<y;
}
return tx>ty;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
阅读全文