取出整型数据中存在指定整数的数据,并按照升序排列返回。
要求实现方法:
public static int[] calcTimes(int[] num, int value);
【输入】 num:整型数组;
value 指定的整数
【返回】 按照升序排列返回整型数组中包含指定整数的元素
示例
输入:num = {12345,654123,98764,123654,9876,4,6,97,8,123} value = 123
返回:{123,12345,123654,654123}
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int *calcTimes(int num[], int len,int value){
vector<int> data;
qsort(num,len,sizeof(int),compare);
int n=1,tmp=value;
while(tmp!=0){
n*=10;
tmp/=10;
}
int reminder=0;
for(int i=0;i<len;i++){
if(num[i] < n && num[i] != value)
continue;
else if(num[i] == value){
data.push_back(num[i]);
}else{
tmp = num[i];
while(tmp >= value){
reminder = tmp%n;
if(reminder == value){
data.push_back(num[i]);
break;
}
else{
tmp/=10;
}
}
}
}
int *result = new int[data.size()];
for(int i=0;i<data.size();i++){
result[i] = data[i];
cout<<result[i]<<" ";
}
cout<<endl;
return result;
}