[グループ] 06NOIPユニバーサルシリーズ(ワンパス情報NOI 1937)(ルオ・バレー)

説明[タイトル]

正の整数k(3≤k≤15)、全てのkに対するk及び相互パワーズの有限数と昇順となるような、例えば、K = 3、配列のパワーの全てを与えられました彼らは以下のとおりです。

1,3,4,9,10,12,13、...

(この配列は、実際には:3 0 3 1 3 0 + 3 1 3 2 3 0 + 3 2 3 1 + 3 2 3 0 + 3 1 + 3 2、...)

N項目(10進数で表される)の最初の列の値を見つけて下さい。

例えば、K = 3、N = 100の場合、正解は981です。

[Enter]を

スペースで区切られた2つの正の整数、のためにのみ1行:

同じNと3≤k≤15,10≤N≤1000のような問題点上で定義されたk個のN(k、。

[出力]

正の整数(すべてのテストデータで、結果が2.1×10以下である。9)。(整数の前にスペースを含まない他のシンボル)。

[サンプル入力]

3 100

[サンプル出力]

981


実際には、この質問は...私はまた、インスピレーションの砂の彫刻の後にコードを見て...部屋で
コードを添付する。

1つの#include <ビット/ STDC ++ H.>
 2  使用して 名前空間STD;
 3  ロング ロングN-、K、ANS;
 4  int型のmain()
 5。 {
 6。      スタック< INT > S;
 7      scanfの(" %のD%D "、&​​K、 &N-);
 8      ながら(N-)
 9。     {
 10          S.push(&N- 1); // N-1&はビット単位のバイナリコードであり、最下位ビットに加えて、格納されたバイナリコードに対応するように、他のビットは0であるので、nはいずれか1&1であり(nが1であるLSB nは奇数である)のいずれか0(nが偶数である場合LSB nは0)。それは2%N-と同等であることが人気のある
11。          N - >> = 1 ; //N >> = 1、右1ビット、最上位ビットが0のバイナリを補完N変数の各ビットの一次ことを意味し、その結果を再びNにコピーされます。Nはに2分割さ
12れている      } // この部分はバイナリnに変換されるように
13である     一方で(!S.empty())
 14      {
 15          ANS S.top = +()* POW(K、S.サイズ() - 1); //はK進小数で10に変換する
16          S.pop();
 17      }
 18である      のprintf(" %のD " 、ANS);
 19。     リターン 0 ;
 20です }

//参照します。https://www.cnblogs.com/smartljy/p/11304187.html(より詳細な説明)

ああ上記の資本の多くの砂の彫刻磁器☝☝☝

おすすめ

転載: www.cnblogs.com/ljy-endl/p/11305748.html