Angka dalam basis-b disederhanakan bentuk Goodstein jika ditulis sebagai
b + b + ... + b + c, 0 < c ≤ b
Urutan Goodstein yang disederhanakan dari suatu angka dimulai dengan menuliskan angka pada basis-1 bentuk Goodstein yang disederhanakan, kemudian mengganti semua 1 dengan 2 dan mengurangi 1. Tulis ulang hasilnya dalam basis-2 bentuk Goodstein yang disederhanakan, kemudian ganti semua 2 dengan 3 dan kurangi 1 , dll. hingga Anda mencapai 0.
Program Anda adalah mengambil input integer positif dan mengeluarkan / mencetak urutan Goodstein-nya dan mengakhiri. Program Anda harus menangani angka kurang dari 100, meskipun mungkin tidak berakhir dalam jumlah waktu yang wajar.
Misalnya, diberi 3 sebagai input, program Anda harus menampilkan (sisi kanan hanya penjelasan)
1 + 1 + 1 | 3 = 1 + 1 + 1
2 + 2 + 1 | Change 1's to 2's, then subtract 1. (2 + 2 + 2 - 1 = 2 + 2 + 1)
3 + 3 | 3 + 3 + 1 - 1 = 3 + 3
4 + 3 | 4 + 4 - 1 = 4 + 3
5 + 2 | 5 + 3 - 1 = 5 + 2
6 + 1 | 6 + 2 - 1 = 6 + 1
7 | 7 + 1 - 1 = 7
7 | 8 - 1 = 7
6 | Numbers are now lower than the base, so just keep subtracting 1.
5 |
4 |
3 |
2 |
1 |
0 | End
Jarak tidak masalah.
Kriteria kemenangan:
Ini adalah kode-golf . Kode terpendek menang.
Jawaban:
05AB1E , 19 byte
Bisa juga diatur ulang sebagai
>Å1[ND>:`Ž<)0KD'+ý,
Cobalah online!
Penjelasan
sumber
Python 2,
7774 byte-3 byte terima kasih kepada Lynn
Cobalah online!
Mudah berjalan hingga n = 100 (meskipun outputnya terlalu panjang untuk ditampilkan sepenuhnya).
sumber
n=input()
b=1
while n:…
n+=n/b-1;b+=1
. 74 bytewhile
berikut;
. Saya menduga bahwa ini karena jika baris dimulai denganwhile
setiap pernyataan berikut (dipisahkan oleh titik koma) dianggap di dalam ruang lingkupnya sementara dan perilakunya akan ambigu atau setidaknya agak buramPyth , 29 byte
Coba di sini!
sumber
Mathematica, 123 byte
Cobalah online!
sumber
Python 3, 155 byte
Ini dapat diformat ulang menjadi
sumber
1+1+...
, dan perhatikan bahwa program Anda seharusnya menangani input bilangan bulat positif.+
.-~x
memiliki nilai yang sama denganx+1
, tetapi Anda tidak perlu tanda kurung, karena unary-
(negasi) dan unary~
(bitwise negasi) memiliki prioritas lebih tinggi daripada*
. Dalam kasus Anda[1]*-~n
sama dengan[1]*(n+1)
.Javascript ES6, 121 karakter
sumber
Perl 5 , 71 byte
Cobalah online!
sumber