Deskripsi Untuk Soal Nomor 35 dan 36
Perhatikan potongan kode berikut:
var
n, temp : longint;
begin
readln(n);
while n >= 10 do
temp := 1;
while n > 0 do
begin
temp := temp * (n mod 10);
n := n div 10;
end;
n := temp;
end.
Berapakah nilai akhir n, jika nilai n pada awalnya adalah 62792912?
a. 4
b. 5
c. 6
d. 7
e. 8
Berapakah nilai akhir n, jika nilai n pada awalnya adalah 14934976?
a. 4
b. 5
c. 6
d. 7
e. 8
Always thing logic
35.C.6 kalikan semua digit digitnya kemudian dikalikan lagi hasil digit digitnya hingga kurang dari 10.
62792912=> 6*2*7*9*2*9*1*2=> 27216
27216=> 2*7*2*1*6=> 168
168=> 1*6*8=> 48
48=> 4*8=> 32
32=> 3*2 => 6
36. C.6 sama seperti cara yang nomor 35 .
14934976=> 1*4*9*3*4*9*7*6=>163296
163296=> 1*6*3*2*9*6=> 1944
1944=> 1*9*4*4=> 144
144=> 1*4*4=> 16
16=>1*6=>6
Masuk untuk menulis jawaban
35 c. 6
36 c. 6
Jika ingin mendownvote, jangan lupa juga untuk komen tentang kesalahannya. That'll be helpful for everyone, don't let that be a habit.
Perhatikan dari cuplikan dalam nested-while loop:
while n > 0 do
begin
temp := temp * (n mod 10);
n := n div 10;
end;
Jika kita mempunyai suatu nilai pada fungsi tersebut dengan
merupakan suatu bilangan yang terdiri dari digit-digit
, maka:
Nilai digantikan oleh nilai variabel temp, dan proses iterasi diulangi dari nomor 1 sampai nilai
. Dengan kata lain, algoritma ini adalah algoritma mengalikan setiap digit dalam bilangan
sampai menghasilkan 1 digit saja. Sehingga kita evaluasikan:
Untuk nomor 35:
Jika , maka:
Untuk nomor 36:
Jika , maka:
6
itu caranya gmn ya kak?
Kalikan setiap digitnya hingga tinggal 1 digit
Misal kita inputkan 639:
639 -> 6*3*9 = 162
162 -> 1*6*2 = 12
12 -> 1*2 = 2
Maka jawaban akhir adalah 2
Apakah jika setiap ada pertanyaan seperti itu caranya sama? Atau tergantung sama potongan code yg di berikan?