Advertisement
khisby

Tugas Akhir Matematika Diskrit

Jun 1st, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7. int jumlah = 0;
  8. void logikaPermutasi(string select, string remain){
  9.  
  10.    if(remain == ""){
  11.         cout << select << endl;
  12.         jumlah++;
  13.         return;
  14.     }
  15.     for(int i=0;remain[i];++i){
  16.         string wk(remain);
  17.         logikaPermutasi(select + remain[i], wk.erase(i, 1));
  18.     }
  19.  
  20. }
  21.  
  22. void permutasi(){
  23.     string anagrama;
  24.     cout << "Masukkan sempel kata sandi : ";
  25.     cin >> anagrama;
  26.     if(anagrama.length()>0){
  27.         if(anagrama.length()>=2){
  28.             sort(anagrama.begin(), anagrama.end());
  29.             logikaPermutasi("", anagrama);
  30.             cout << "Jumlah permutasi : " << jumlah << endl;
  31.             system("pause");
  32.         }else{
  33.             cout << "Sempel harus lebih dari 8 karakter" << endl;
  34.             system("pause");
  35.         }
  36.     }else{
  37.         cout << "Masukkan sempel kata sandi" << endl;
  38.         system("pause");
  39.     }
  40. }
  41.  
  42. int f(int n){
  43.    if (n <= 1){
  44.        cout << "f(" << n << ") = 1" << endl;
  45.        return 1;
  46.    }else{
  47.        cout << "f(" << n << ") = " << n << "*" << "f(" << n-1 << ")"<< endl;
  48.        return n*f(n-1);
  49.    }
  50. }
  51.  
  52. void fungsi(){
  53.     int angka;
  54.     cout << "Masukkan angka n fungsi : ";
  55.     cin >> angka;
  56.     cout << "RUMUS = f(" << "n" << ") = " << "n" << "*" << "f(" << "n" << "-1)" << endl << endl;
  57.     f(angka);
  58.  
  59.     int tampung[100];
  60.     int batas=0;
  61.     cout << "\nHasilnya = " << endl;
  62.     int factorial = 1;
  63.     for(int i = 1; i <=angka; ++i)
  64.     {
  65.         factorial *= i;
  66.         tampung[batas] = factorial;
  67.         batas++;
  68.     }
  69.  
  70.     for(int i=batas-1;i>=0;i--){
  71.         cout << tampung[i] << endl;
  72.     }
  73.     system("pause");
  74. }
  75.  
  76.  
  77. int main()
  78. {
  79.     int menu;
  80.     do{
  81.         system("cls");
  82.         cout << "Nama Kelompok : " << endl;
  83.         cout << "1. Khisby Al Ghofari 06.2017.1.06852" << endl;
  84.         cout << "2. M. Ichwan Fanani 06.2017.1.06864 " << endl;
  85.         cout << "3. Ach. Khafid Salim 06.2017.1.06762 " << endl;
  86.         cout << "4. Muchammad Nurdin wahyudi 06.2017.1.06808 " << endl;
  87.         cout << "5. Rizal Arianto  06.2017.1.06798 " << endl << endl;
  88.         cout << "Menu " << endl;
  89.         cout << "1. Kombinasi Kata-Sandi (Permutasi)" << endl;
  90.         cout << "2. Memecahkan Fungsi Rekrusif" << endl;
  91.         cout << "Masukkan menu : ";
  92.         cin >> menu;
  93.  
  94.         if(menu == 1){
  95.             jumlah = 0;
  96.             permutasi();
  97.         }else if(menu == 2){
  98.             fungsi();
  99.         }else{
  100.             cout << "Menu yang anda maksukkan tidak ada..." << endl;
  101.             system("pause");
  102.         }
  103.     }while(menu != 4);
  104.  
  105.     return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement