-------------------------------------------------- --------
まず、バイナリ変換
出力六角:のprintf( "%のX"、NUM);
ここで、Xケース進出力判定レターケース
バイナリ出力は、int型の配列で0と1を格納する関数を記述が、必要にすると、特別なWAを忘れ判決で、その結果、ゼロを宣告
ボイドビン(int型N) { 場合(N == 0)COUT << ' 0 ' 。 他{ INT [ 100001 ]。 int型 CNT = 0 ; 一方、(N / 2 ) { [CNT ++] = N%2 。 N / = 2 。 } もし、(N%2)CNT ++] = 1 。 以下のために(int型 I = CNT- 1 ; I> = 0 COUT << - I。)[I];} }
第二に、蛇行配列
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 int型T、N、I、J。 INT [ 11 ] [ 11 ]。 ボイドのヘビ(int型N) { memsetの(0、はsizeof (a)参照)。 int型 I = 1、J = 1、CNT = 1 ; 一方(CNT <(n個の*のN)) { ながら(!J <N && [I]、[J + 1 ])[I]、[J ++] =(CNT ++ )。 一方、(!私は&& [I + N < 1 [I ++] [J] =(CNT ++] [J]) )。 同時に(jは> 1!&& [I] [J- 1 ])[i]は[J - ] =(CNT ++ ); しばらく(I> 1!&& [I- 1 [J] =(CNT ++ - ] [J])[i]の;) } [I] [J] = N * N。 用(i = 1 ; iが<= N; iは++ ) { ため(J = 1 ; J <= N; J ++)COUT << [I] [J] << ' ' 。 coutの << てendl; } } int型のmain() { CIN >> T。 以下のために(int型私= 0 ; iがTを<。) { CIN >> N。 裁判所未満 << " ケース#" << I << " :\ nは" ; 蛇(N) } 戻り 0 。 }
(whileループ内部ループはループのために変更することができるが)
キーは、それらが[i]の[j]を判断するに書かれているので、それをしなかった初めてではない、実際には、[I + 1] [J]と同様であるべき空席を判断するための時間です
三、N尾におけるゼロの数(N <= 1000)階乗
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 int型T、N、I; INT メイン() { CIN >> T。 用(i = 0 ; iがT <; iは++ ) { CIN >> N。 COUT << " ケース#" << I << " :\ nを" << N / 5 + N / 25 + N / 125 + N / 625 << ENDL。 } 戻り 0 。 }