之前看这个图片根本不知道他是什么意思,现在看原来是java 。理解了题意以后按想法来编程就好。
a数组用来存电话号码
c数组用来存储第一行输出的几个数
b数组是看电话号码中有那几个数,辅助c数组
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int main(){
char a[12];
int b[10];
int c[10];
memset(b,0,sizeof(b));
for(int i=0;i<11;i++){
cin>>a[i];
b[a[i]-'0']=1;
}
int num=0;
for(int i=9;i>=0;i--){
num+=b[i];
}
int num2=0;
for(int i=9;i>=0;i--){
if(b[i]!=0){
c[num2++]=i;
}
}
//输出第一行
cout<<"int[] arr = new int[]{";
for(int i=0;i<num;i++){
cout<<c[i];
if(i!=num-1){
cout<<",";
}
}
cout<<"};"<<endl;
//输出第二行
int num3=0;
cout<<"int[] index = new int[]{";
for(int i=0;i<11;i++){
for(int j=0;j<num;j++){
if(a[i]-'0'==c[j]){
num3++;
cout<<j;
if(num3!=11){
cout<<",";
}
}
}
}
cout<<"};"<<endl;
return 0;
}