[Ask] Teknik Rekursif Bahasa C

Discussion in 'Programming' started by wrep17, May 6, 2017.

  1. wrep17

    wrep17 Well-Known Member

    Joined:
    Sep 26, 2015
    Messages:
    1,325
    Likes Received:
    246
    Trophy Points:
    63
    Google+:
    Saya ada beberapa soal tentang teknik rekursif, namun ada salah satu soal yang ingin saya tanyakan yaitu tentang Teknik Rekursif

    Contoh soalnya berikut
    Fungsi ini mengembalikan hasil penjumlahan parameter num1 dengan parameter num2 dengan teknik rekursif,
    yaitu dengan melakukan penambahan +1 pada parameter num1 berulang-ulang sebanyak num2 kali. Fungsi ini
    juga harus menampilkan proses penambahan +1 secara berulang sebagaimana terlihat pada contoh.

    Disuruh buat seperti yang di bawah ini.

    add_rec(5, 6); // -> 11
    1+ 1 + 1 + 1 + 1 + 1 + 5


    Misal memasukkan angka "5" akan keluar 1+1+1 sampai angka yang ditentukan, kira2 harus pakai procedure dan fungsi secara bersamaan atau salah satunya saja? Saya sudah ada coding sementara belum selesai, karena yang coding ini cuma menghasilkan 5+6 =11 bukan 1+1+1+1+1+6=11.

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int add_rec(int num1, int num2)
    {
    
        if(num1 == 0)
        {
            return num2;
        }
        else
        {
            return add_rec(num1 - 1, num2) + 1;
        }
    }
    
    int main()
    {
        int angka1, angka2;
    
        angka1=5;
        angka2=6;
        printf("Hasilnya : \n");
        printf("%d + %d = %d\n",angka1, angka2, add_rec(angka1, angka2));
    
        return 0;
    }
    

    Kalik aja ada yang bisa :)
    Tag aja biar fast @Damar @Garett @Dan
     
  2. Garett

    Garett Super Level

    Joined:
    Apr 13, 2015
    Messages:
    1,104
    Likes Received:
    1,049
    Trophy Points:
    163
    Google+:
  3. wrep17

    wrep17 Well-Known Member

    Joined:
    Sep 26, 2015
    Messages:
    1,325
    Likes Received:
    246
    Trophy Points:
    63
    Google+:
    Sudah tapi kalau faktorial hasilnya akan seperti ini, misal input "5" maka hasilnya akan 5 4 3 2 1 = hasil akhir
    Saya mau merubah menjadi 1 1 1 1
     
  4. wrep17

    wrep17 Well-Known Member

    Joined:
    Sep 26, 2015
    Messages:
    1,325
    Likes Received:
    246
    Trophy Points:
    63
    Google+:
    Sudah terselesaikan :)
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int add_rec(int num1, int num2)
    {
        if(num2 == 0)
        {
            printf("%d = ", num1);
            return num1;
        }
        else
        {
            printf("1 + ");
            return add_rec(num1,num2 - 1) + 1;
        }
    }
    
    int main()
    {
        int angka1, angka2;
    
        angka1=5;
        angka2=6;
        printf("Hasilnya : \n");
        printf("%d = %d\n",angka2, add_rec(angka1, angka2));
        puts("");
    
        return 0;
    }
    
     
  5. Garett

    Garett Super Level

    Joined:
    Apr 13, 2015
    Messages:
    1,104
    Likes Received:
    1,049
    Trophy Points:
    163
    Google+:
    Okelah. Masalah teratasi.
     
    wrep17 likes this.
  6. Damar

    Damar Well-Known Member

    Joined:
    Jun 22, 2014
    Messages:
    1,472
    Likes Received:
    216
    Trophy Points:
    63
    Google+:
    Oke, sudah selesai ternyata :D
     
    wrep17 likes this.
  7. awandeys

    awandeys Member

    Joined:
    Mar 14, 2017
    Messages:
    34
    Likes Received:
    7
    Trophy Points:
    8
    Aku nggak nyampai den :D
     
  8. tanpamoney

    tanpamoney Guest

    izin numpang duduk, gak paham nih
     
  9. Garett

    Garett Super Level

    Joined:
    Apr 13, 2015
    Messages:
    1,104
    Likes Received:
    1,049
    Trophy Points:
    163
    Google+:
    upload_2017-5-18_13-28-43.png

    Temukan ini di Python. Saya harus mulai perdalami arithmatic. Terlalu terpaku pada desain. owo
     
  10. Andre

    Andre Member

    Joined:
    Apr 12, 2013
    Messages:
    483
    Likes Received:
    22
    Trophy Points:
    18
Loading...

Share This Page