(これはかなり古典的かもしれませんが、これはここでの私の最初の投稿なので、私はまだ派手なものの準備ができていません)
グッドスタイン配列は、以下のように、入力数に対して定義されます。
開始番号を選択N、聞かせてB = 2と繰り返し:
- 基数bの表記でnを書く
- nのすべての(b)を(b +1)に置き換え、1を減算します
- nの新しい小数評価を出力します
- インクリメントb
遺伝基数表記は、基数が出現するより大きな数である場合の数の分解です。例:
83
HB3で:3^(3+1)+2
226
HB2で:2^(2^(2+1))+2^(2+1)+2
グッドスタインシーケンスは常に0になりますが、最初は非常に速く非常に大きくなる傾向があるため、完全なシーケンスを出力する必要はありません。
仕事:
適切な形式の入力番号が与えられた場合、あなたの仕事は、少なくとも10 ^ 25または0に達するまで、この番号のGoodsteinシーケンスを出力することです
例:
Input: 3
Output: 3, 3, 3, 2, 1, 0
Input: 13
Output: 13, 108, 1279, 16092, 280711, 5765998, 134219479, 3486786855, 100000003325, 3138428381103, 106993205384715, 3937376385706415, 155568095557821073, 6568408355712901455, 295147905179352838943, 14063084452067725006646, 708235345355337676376131, 37589973457545958193377292
Input: 38
Output: 38, 22876792454990
詳細:
2
1つのテストケースのステップバイステップを追加できますか?
—
ロッド
PPCGへようこそ!素敵な最初の挑戦!
—
FantaC
@ØrjanJohansenええ、バグは、浮動小数点エラーを避けるために(または単に)
—
アンデルスカセオルグ
int(q/base.b), q%base.b
必要であるということです。q//base.b, q%base.b
divmod(q, base.b)
「少なくとも10 ^ 25または0に達するまで」とは、プログラムが0に達した後(おそらく-1、-2、-3、…)にプログラムを続行できることを意味しますか?
—
アンデルスカセオルグ