問題:
シーナマイクロブログは、画像の非常に火災以下となっているされています
タイムライン助けを叫び、どのようにこの休憩を雇います。実際には、このコードは非常にシンプルであり、インデックスは配列ARRインデックス配列であり、インデックス[0] = 2に相当ARR [2] = 1、インデックス [1] = 0 に相当ARR [0] = 8、インデックス [2] = 3 それが......入手が容易であるので、対応は、ARR [3] = 0、電話番号が18013820100です。内容は同じであるの後ろに、フロント限り、実際にはそれに発生した2つの行を - この質問は任意の電話番号にコードを生成するプログラムを記述する必要があります。
入力フォーマット:
入力は、行の11桁の電話番号が与えられます。
出力フォーマット:
デジタルARRを降順に指定する必要があり、前記生成されたコードの入力、多数の前の2行。
サンプル入力:
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};
自分の問題のいくつかが発生しました:
この質問は難しいことではありません、しかし、私はint型の配列はよく18013820100この番号は保たれている考え始めた、悲劇の結果は、シナリオ、次の登場しました。。。。。。。ハ〜(厄介な)は、本当に愚かな間違いそれを作りました!その時、彼は反応しませんでした。
これはなぜでしょうか?
int配列はint型の数を格納することができますので、そうではなく、あなたが思う預金などよりも、デジタルとしてそれを使用する範囲は-2147483648に2147183648アレイストレージであるint型。
私の考え:
- チャーの入力の形。
- その後、int型numは型にキャスト。
- 次いで、デエンファシス、重複排除方法は、フラグ配列でマークされている、[12]スタートフラグは、0 NUMに置かれた場合、フラグは、0であるか否かを判断する[NUM]ゼロ、各入力NUMでありますSTの場合に、その後、[12]配列で、フラグ[NUM] = 1、同様に次のif文、重複排除の効果を達成するようになっています。
- そして、降順でカスタムの並べ替えと一度。
- また、NU配列と元の数を維持します。
- 次いで、行に[12]の結果を格納する配列の結果を見つけるために後に、次いで、ラインを比較するための2つのループを使用します。
以下は、プレイコードの私の考えです。
#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;
}
コードは簡潔で、何の感謝を取っていません!
ねえ!私も料理でした。。。。