中級 0件解決済み 正答率0%

桁のべき乗和

各桁を左からの位置のべき乗にして加算します。

このチャレンジで学べること

  • 数を左から順に各桁へ分解する
  • 位置に応じた累乗を各桁に適用する
  • ループの中で合計を積み上げる

問題

原文(英語)を表示

数字 n の各桁に、左から1番目、2番目…と番号を付けます。それぞれの桁を、その位置のべき乗にして合計してください。例えば352の場合は 3¹ + 5² + 2³ となります。0の桁は0を加算します。

digit_power_sum(n) を実装してください。

入力

n: 正の整数。

出力

べき乗した各桁の合計を返してください。

制約

1 ≤ n ≤ 1,000,000,000

例

例 1
入力:
n = 352

期待される出力:
expected = 36
入力:
long long n = 352;

期待される出力:
long long expected = 36;
入力:
long n = 352;

期待される出力:
long expected = 36;

解説

3¹ + 5² + 2³ = 3 + 25 + 8 = 36。

例 2
入力:
n = 89

期待される出力:
expected = 89
入力:
long long n = 89;

期待される出力:
long long expected = 89;
入力:
long n = 89;

期待される出力:
long expected = 89;

解説

8¹ + 9² = 8 + 81 = 89、元の数自体です。

解き方のヒント

まずは自分で考えてから、ヒントを 1 つずつ開いてみましょう。

ヒント 1

数字を左から右へ1桁ずつ見て、それぞれの位置を追跡する。

ヒント 2

数値を文字列にするか、各桁を組み合わせる前に左からのインデックスを把握しておく。

ヒント 3

0の桁は値に影響しないが、指数の計算では位置が重要になる。

目安の計算量

時間 O(d)、追加メモリ O(1)

他の人の解答から学ぶ

コミュニティの解答

まだ公開された解答がありません。この課題を解いて最初の解答を共有しましょう。