式 A=K*B^M+N

 投稿者:山中和義  投稿日:2012年 5月23日(水)11時31分55秒
  問題
正整数A,B(B≠1)が与えられる。このとき、A=K*B^M+N を満たす非負整数K,M,Nを求めよ。
ただし、K(K<B)とMは最大とする。 例 10=1*2^3+2、20=2*3^2+2

S,K,Eをからめて解いてみます♪


LET A=10
LET B=2

!その1 割っていく

LET S=1 !B^M
LET K=A
LET M=0
DO WHILE K>=B !A>B^Mを満たす最大のMを求める
   LET S=S*B
   LET K=INT(K/B) !次へ
   LET M=M+1
LOOP
LET N=A-K*S !余り

PRINT K;M;N !結果を表示する


!その2 かけていく

LET S=1 !B^M
LET E=S*B
LET M=0
DO WHILE A>=E !A>B^Mを満たす最大のMを求める
   LET S=E
   LET E=E*B !次へ
   LET M=M+1
LOOP
LET K=INT(A/S) !最上位桁の値
LET N=A-K*S !余り

PRINT K;M;N !結果を表示する


END

 

Re: 式 A=K*B^M+N

 投稿者:山中和義  投稿日:2012年 5月23日(水)13時19分23秒
  > No.1882[元記事へ]

類題
正整数A,B(B≠1)が与えられる。このとき、A=B^K+S を満たす非負整数K,Sを求めよ。
ただし、Kは最大とする。 例 10=2^3+2、20=3^2+11

答え
B進法表記を利用すると、
A=P*B^K+Q*B^(K-1)+ … +U*B+V=B^K + (P-1)*B^K+Q*B^(K-1)+ … +U*B+V、P≧1より、

例 10=2^3+2
 10は2進法で、1010なので、最上位の桁に注意すると、0010 ∴2
例 20=3^2+11
 20は3進法で、202なので、最上位の桁に注意すると、102 ∴11

前出の問題も同様です。

S,K,Eをからめて解いてみます♪ センター候補にどうでしょうか!


LET A=15
LET B=3

LET E=A
LET K=0
DO WHILE E>=B !進数変換(B進法へ)
   LET E=INT(E/B) !次へ
   LET K=K+1
LOOP
LET S=A-B^K

PRINT K;S !結果を表示する

END

 

戻る