OSP 2012

  1. Perhatikan potongan program berikut ini:
    var m,i,a,b,c,d:longint;
    begin
        readln(m);
        a:=1;b:=1;c:=1;
        for i:=4 to m do
        begin
            d:=a+b+c;
            a:=b;
            b:=c;
            c:=d;
        end;
        writeln(c);
    end.
    

    Bila user memasukkan input 8, maka berapakah outputnya?


    Perulangan dimulai dari i=4 sampai i = 8, dengan nilai awal a,b,c = 1.

    Untuk i = 4
    d = 3, a = 1, b = 1, c = 3
    Untuk i = 5
    d = 5, a = 1, b = 3, c = 5
    Untuk i = 6
    d = 9, a = 3, b = 5, c = 9
    Untuk i = 7
    d = 17, a = 5, b = 9, c = 17
    Untuk i = 8
    d = 31, a = 9, b = 17, c = 31

    Dengan cara lain:
    Nilai c pasti akan sama dengan nilai d di mana nilai d = a+b+c. Sedangkan nilai a dan b baru merupakan nilai di sebelahnya.

    Dengan demikian nilai c merupakan penjumlahan 3 nilai sebelumnya. Sehingga jika kita urutkan akan menjadi:
    1,1,1,3,5,9,17,31,57,…
    dengan 3 nilai pertama milik i = 4.

Share Now:

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x

Follow TikTok Kami @cahinfor

Pembahasan soal tahun 2023 sudah tersedia di TikTok Kami loh!