Проблема:
Следующий является Син микро-блог был очень огнем картины:
время линия крик о помощи, нанять , как этот разрыв. На самом деле, этот код очень прост, индекс представляет собой индекс массива обр массив, индекс [0] = 2 соответствует обр [2] = 1, индекс [1] = 0 соответствует обр [0] = 8, индекс [2] = 3 соответствует обр [3] = 0, так что очень легко получить ...... телефонный номер 18013820100.Этот вопрос требует, чтобы написать программу, которая генерирует код на любой номер телефона - на самом деле, пока фронт две строки, сгенерированные на ней, за содержание одно и то же.
Входные форматы:
Ввод дается 11-значный номер телефона в ряд.
Выходные форматы:
Две линии перед номером генерируемого ввода кода, в котором цифровые обры должны быть даны в порядке убывания.
Пример ввода:
18013820100
Пример вывода:
int[] arr = new int[]{8,3,2,1,0};
int[] index = new int[]{3,0,4,3,1,0,2,4,3,4,4};
Некоторые из их собственных проблем, возникающие:
Этот вопрос не сложен, однако, я начал думать целочисленный массив хранится хорошо 18,013,820,100 это число, в результате трагедии появился следующим сценарием. , , , , , , Ха ~ (неудобно) действительно сделал глупую ошибку это! В то время он не реагировал.
Почему это?
Поскольку целочисленный массив может хранить число типа Int, Int диапазон -2147483648 до 2147183648 хранения массива, так что используйте его как цифровой, а не в качестве депозита вы думаете.
Мои мысли:
- Форма полукокса сек входа.
- Затем преобразованный к типу INT Num.
- Затем предыскажений, дедупликации путь отмечен флагом массива, [12] флаг старта на нуле, каждый входной пит [Num] определяют, является ли флаг равен 0, если 0 помещают в NUM й [12] в массиве, а затем флаг [число] = 1, в случае, если в следующем заявлении в то же самое, так что для достижения эффекта дедупликации.
- Затем, когда с помощью пользовательской сортировки в порядке убывания.
- Кроме того, имейте оригинальный номер с массивом ню.
- Затем с помощью двух петель для сравнивать линию, то после того, как выяснить результаты массива для хранения результата [12] на линии.
Ниже моя идея коды игры:
#include<bits/stdc++.h>
using namespace std;
int flag[12],st[12],nu[12];
bool cmp(int a,int b) {
return a>b;
}
int main() {
char s;
int count=0,num,tot=0;
for(int i=0; i<11; i++) {
cin>>s;
num=(int)(s-'0');
nu[tot++]=num;
if(flag[num]==0) {
st[count++]=num;
flag[num]=1;
}
}
sort(st,st+count,cmp);
int result[12],ans=0;
for(int i=0; i<tot; i++) {
for(int j=0; j<count; j++) {
if(st[j]==nu[i]) {
result[ans++]=j;
}
}
}
cout<<"int[] arr = new int[]{";
for(int i=0; i<count-1; i++) {
cout<<st[i]<<",";
}
cout<<st[count-1]<<"};";
cout<<endl;
cout<<"int[] index = new int[]{";
for(int i=0; i<ans-1; i++) {
cout<<result[i]<<",";
}
cout<<result[ans-1]<<"};";
return 0;
}
Код лаконичен, не предпринимал никакого спасибо!
Эй! Я был слишком блюда. , , ,