PAT L1-027 прокат (Ladder матч), некоторые из проблем, возникающих в процессе хранения.

Проблема:

Следующий является Син микро-блог был очень огнем картины:
Here Вставка рисунка Описание
время линия крик о помощи, нанять , как этот разрыв. На самом деле, этот код очень прост, индекс представляет собой индекс массива обр массив, индекс [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 это число, в результате трагедии появился следующим сценарием. , , , , , , Ха ~ (неудобно) действительно сделал глупую ошибку это! В то время он не реагировал.
Here Вставка рисунка Описание
Почему это?

Поскольку целочисленный массив может хранить число типа Int, Int диапазон -2147483648 до 2147183648 хранения массива, так что используйте его как цифровой, а не в качестве депозита вы думаете.

Мои мысли:

  1. Форма полукокса сек входа.
  2. Затем преобразованный к типу INT Num.
  3. Затем предыскажений, дедупликации путь отмечен флагом массива, [12] флаг старта на нуле, каждый входной пит [Num] определяют, является ли флаг равен 0, если 0 помещают в NUM й [12] в массиве, а затем флаг [число] = 1, в случае, если в следующем заявлении в то же самое, так что для достижения эффекта дедупликации.
  4. Затем, когда с помощью пользовательской сортировки в порядке убывания.
  5. Кроме того, имейте оригинальный номер с массивом ню.
  6. Затем с помощью двух петель для сравнивать линию, то после того, как выяснить результаты массива для хранения результата [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;
}

Код лаконичен, не предпринимал никакого спасибо!
Эй! Я был слишком блюда. , , ,

Освобожденные восемь оригинальных статей · вона похвала 8 · просмотров 205

рекомендация

отblog.csdn.net/xzy15703841578/article/details/105273221
рекомендация