Deskripsi Untuk Soal Nomor 25 dan 26
Perhatikan potongan program berikut:
function bunga(x,y:longint):longint;
begin
if x = 0 then bunga := y
else bunga := bunga(x div 10, (y*10) + (x mod 10));
end;
function daun(x:longint):longint;
begin
daun := bunga(x,0);
end;
function buah(x:longint):longint;
begin
if daun(x) = x then buah := x else buah := buah(x+1);
end;Berapakah hasil dari daun(2015) + daun(1998) + daun(7500)?
Berapakah hasil dari pemanggilan buah(50914)?
TOKI 2011
Jika diperhatikan, bunga(x, y) akan mengambil digit terakhir dari x lalu menaruhnya sebagai digit terakhir dari y, dilakukan berulang sampai x sudah habis, dan hasilnya adalah y. Contoh:
bunga(123, 0) = bunga(12, 3)
bunga(12, 3) = bunga(1, 32)
bunga(1, 32) = bunga(0, 321)
bunga(0, 321) = 321.
Karena fungsi daun(x) akan memanggil bunga(x, 0), maka kita dapat menyimpulkan bahwa fungsi daun(x) akan mengembalikan kebalikan dari x. Contoh, daun(125) akan mengembalikan 521.
Dari kesimpulan diatas kita dapat menjawab soal nomor 25. daun(2015) + daun(1998) + daun(7500) = 5102 + 8991 + 57 = 14150.
Sekarang kita perhatikan fungsi buah(x). Perintah `if daun(x) = x` akan menghasilkan nilai `true` apabila kebalikan dari x adalah x itu sendiri, atau dalam kata lain, x adalah bilangan palindrom. Apabila x adalah bilangan palindrom, maka fungsi buah(x) akan mengembalikan x. Jika tidak, fungsi buah(x) akan mengembalikan buah(x+1). Dilakukan berulang sampai ditemukan x palindrom.
Dalam kata lain, fungsi buah(x) akan mengembalikan bilangan pertama yang lebih besar atau sama dengan x yang merupakan bilangan palindrom. Oleh karena itu, buah(50914) akan menghasilkan 51015.
Hasil dari setiap daun, menjadi kebalikannya
==> daun(2015) = 5102
==> daun(1998) = 8991
==> daun(7500) = 57
Hasilnya untuk nomor 25 => 5102+8991+57=14150
Untuk nomor 26 => adalah bilangan palindrome terdekat dan lebih besar dari 50914,, yaitu 51015
Masuk untuk menulis jawaban
No.25 5102+8991+57=14150
No.26 50914>x. Jika x dibalik maka akan mnghslkn nilai x sndr. maka nilai x terdekat adalah 51015
@Maulana Akmal : memang ada yg lbh dekat... cuma karena program ini kan minta angka tsb naik ke atas smp mnghslkn nilai x dimana ketika x dibalik mnghslkn nilai sndr

SMA Unggulan CT Arsa Foundation
26. (50914) ditambah sampai jumlahnya (60006) maka hasilnya akan tetap sama
50914 = 41905
60006 = 60006
Jawabannya : 60006
SMAN MODAL BANGSA ACEH
ada yang lebih dekat 50005