ブルーブリッジカップ - カラム数

タイトル説明
正の整数k(3≤k≤15)が与えられ、全てのkのパワーと有限数kの全てが等しくと増分シーケンスの和のパワーを構成し、例えば、場合K = 3、この配列は:
1,3,4,9,10,12,13、...
(実際配列である:3 0 ^ 0,3 ^ 1,3 ^ 1,3 ^ 2,3 ^ + ^ 3 + 0 ^ 3 ^ 2 ^ 3 ^ 2,3 ^ 2,3 ^ 1 + 0 + 1 + 3、...)
あなたが進数によって配列のN項目(発現)の値を求めます。
例えば、K = 3、N = 100の場合、正解は981です。
入力
:2つの正の整数の一つの行、空白で区切られた
KN
(K、同じN及び3≤k≤15,10≤N≤1000のような問題点上で定義されました)。
出力
演算結果が正の整数である(すべての試験データでは、結果はより2.1 * 10 ^ 9ではありません)。(整数の前にスペースを含まない他のシンボル)。
サンプル入力
3100
サンプル出力
981
問題解決のためのコードを
アルゴリズムを提供することは、k個の有限数に実際には、我々はアイテムnは時間を調べるために、Kの最大電力を取るためにここにいるので、互いに等しく、それは番号を設定してもよいpは、関連付けられなければならないことは明らかです彼はkが回数n個のバイナリと関連しているという事実を考えて。2 ^ p個の数ヶ月は、ある
我々は、変換、進数の変換を逆にN、その後、Kバンドとして彼を入れ、次に進数に変換することができます出力の結果が答えです
書式#include <stdio.hに> 
する#include <math.h>の
 int型のmain()
{
    int型 K、N、J = 0 
    scanf関数(" %D%D "、&​​K&N)
    int型 [ 100を、iは=] 0 、B。
    B = N。
    一方、(B)
    {
        [I ++]%のB = 2 ; // バイナリn個に入れ 
        B / = 2 
    }
    I - ;
    一方、(I> = 0 
    {    
        J + A = [I] * POW(K、I); // 二元、三元、その小数として計算しました 
        i-- 
     } 
     printf(" %d個" 、J);
    リターン 0 ;
}
コードの表示

 

 
 
 
 
 

おすすめ

転載: www.cnblogs.com/lipu123/p/12148125.html