キュー復号QQ号
このブログは、「なるほどです!アルゴリズム、「研究ノート、ここにいくつかの記録をすることができません。
問題のシナリオ:
QQ番号の文字列、631 758 924から復号化された本物のQQ番号を与えられました。
復号化ルール:まず、最初の番号を削除し、その後、第二この文字列の末尾の数に数、および次いでその中に文字列番号の端部を第三及び第四の数を削除する、第続い削除されたの数が......最後の番号を削除し、最後に残った番号を知っています。ただ、順序を削除し、一緒にこれらの番号を削除すると、実際のQQ番号です。
1、C言語
コードの実装:
/ *
*作成:CZC
*作成日:2019年8月31日
*使用の作成:解読QQ番号キュー
* /
の#include <stdio.hの>
int型のmain(){
int型 Q [ 102 ] = { 0、6、3。、図1、図7、図5、図8、図9、2、4 }、頭部、尾部;
// キューを初期化
// ヘッドの位置にキュー・ポイントの頭部後、尾を指し尾
ヘッド= 1 ;
尾 = 10 ;
一方(ヘッド< 尾){
//プリントキューおよびデキューキューの先頭最初
のprintf(「%のD 」、Q [ヘッド]);
ヘッド ++ ;
// 最初のテール追加する新しいチーム
Q [尾]を= ; Q [ヘッド]
尾 ++ ;
// その後、最初のチームのチームの
ヘッド++ ;
}
リターン 0 ;
}
スクリーンショットの結果:
2、ジャワ
コードの実装:
/ *
作成:CZCは、
作成日:2019年8月31日
に作成用途:復号化されたQQ番号キュー
* /
インポートjava.util.Scanner;
インポートは、 静的; java.lang.System.outへ
のパブリック クラスキュー{
公共の 静的な 無効メイン(文字列[]引数が){
スキャナスキャナが = 新しい新しいスキャナ(System.in);
int型 [] = Q 新しい新しい INT [102 ];
int型N-、頭部、尾部;
N- = scanner.nextInt();
// キュー初期化する
ための(int型 Iを0 =; Iは、N <; I ++){
Q [I]= scanner.nextInt()。
}
ヘッド = 0 。
尾 = 9 ;
一方、(ヘッド< 尾){
out.print(Q [ヘッド] +」 " )。
ヘッド ++ ;
Q [尾] = Q [ヘッド]。
尾 ++ ;
ヘッド ++ ;
}
}
}
スクリーンショットの結果:
私の人生は知識がまったく制限がなく、限られています。