インドの伝説によると、チェスゲームの発明者とされる人物が、彼のゲームでインドの皇帝に感銘を与えたので、尋ねられたものは何でも報われます。
男は彼が米で支払われたいと言った。彼は、チェス盤の最初の正方形に1粒、2枚目に2枚、3枚目に4枚、4枚目に8枚、というように64枚目まで米粒が欲しいと思っていました。
皇帝はその男がそのような小さな報酬を求めたことに驚いたが、彼の数学者が数え始めたとき、彼は彼の州の一つを失ってしまった。
仕事
仮定のチェス盤の辺の長さ(デフォルトのチェス盤では8)と平方間の乗数(凡例では2)を考慮して、皇帝が男性に支払う必要がある米の粒数を計算します。
ノート
辺の長さは常に正の整数になります。乗数は、代わりに任意の種類の有理数にすることができます。
選択した言語で非常に大きな数値を表示できない場合、プログラムが小さな入力を正しく処理できる限り問題ありません。
また、選択する言語が(指数表記で)大きな値を丸める場合、それらの値がほぼ正しい場合でも問題ありません。
テストケース
Input (side length, multiplier) => Output
8, 2 => 18446744073709551615
3, 6 => 2015539
7, 1.5 => 850161998.2854
5, -3 => 211822152361
256, 1 => 65536
2, 2 => 15
2, -2 => -5
明示的な式
result = (multiplier ^ (side ^ 2) - 1) / (multiplier - 1)
上の間違った行いmultiplier = 1
として、
1 ^ (side ^ 2) - 1 = 0
1 - 1 = 0
0 / 0 != side ^ 2 (as it should be)
得点
これはコードゴルフです。バイト単位の最短回答が優先されます。
If your language of choose can't display too large numbers, it's ok as long as your program can correctly process smaller inputs
注意してください、それは過去に問題を引き起こしました。meta.codegolf.stackexchange.com/a/8245/31716