为什么测试样例啥的都可以过,而且看了题解感觉思路没什么问题,但就是通过不了,求大佬帮忙看一看!!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string>
#include <stdlib.h>
#include <math.h>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
struct Number {
long long num;
int size;
};
vector<Number>a;//全局变量储存数
int judge(int num) {
if (num == 1 || num == 2 || num == 3 || num == 5 || num == 7)return 0;
if (num == 4 || num == 6 || num == 9)return 1;
if (num == 8)return 2;
}
bool cmp(const Number a, const Number b) {
if (a.size != b.size) {
return a.size < b.size;
}
else if (a.size == b.size) {
return a.num < b.num;
}
}
int main() {
int n , x;
cin >> n;
for (int i = 0; i < n; i++)
{
Number num;
cin >> num.num;
num.size = 0;
a.push_back(num);
}
for (int i = 0; i < n; i++)
{
int b = a[i].num;
int c = 0;//余数
int size_ = 0;//大小
while (b > 0) {
c = b % 10;
size_ += judge(c);
b /= 10;
}
a[i].size = size_;
}
sort(a.begin(), a.end(), cmp);
for (int i = 0; i < n; i++) {
cout << a[i].num << " ";
}
return 0;
}