Advertisement
anhkiet2507

3 Thuat Toan Sinh

Mar 1st, 2022 (edited)
2,139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.63 KB | None | 0 0
  1. //(DO NOT OPEN): https://www.youtube.com/watch?v=iik25wqIuFo
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. int SinhXauNhiPhan(){
  6.     int t; cin >> t;
  7.     while(t--){
  8.         int n; cin >> n;
  9.         int X[n];
  10.         //INIT();
  11.         for(int i = 1; i<=n; i++){
  12.             X[i]=0;
  13.         }
  14.         bool OK = true;
  15.         while(OK){
  16.             //RESULT();
  17.             for(int i = 1; i<=n; i++){
  18.                 cout << X[i];
  19.             }
  20.             cout << endl;
  21.             int i = n;
  22.             while(i>0&&X[i]==1){
  23.                 X[i]=0;
  24.                 i--;
  25.             }
  26.             if(i>0){
  27.                 X[i]=1;
  28.             }else{
  29.                 OK=false;
  30.             }
  31.         }
  32.     }
  33.  
  34.     return 0;
  35. }
  36. int SinhHoanVi(){
  37.     int t; cin >> t;
  38.     while(t--){
  39.         int n; cin >> n;
  40.         int X[n];
  41.         //INIT();
  42.         for(int i = 1; i<=n; i++){
  43.             X[i]=i;
  44.         }
  45.         bool OK = true;
  46.         while(OK){
  47.             //RESULT();
  48.             for(int i = 1; i<=n; i++){
  49.                 cout << X[i];
  50.             }
  51.             cout << endl;
  52.             int j = n-1;
  53.             while(j>0&&X[j]>X[j+1]){
  54.                 j--;
  55.             }
  56.             if(j>0){
  57.                 int k = n;
  58.                 while(X[j]>X[k]){
  59.                     k--;
  60.                 }
  61.                 int temp = X[j]; X[j] = X[k]; X[k] = temp;
  62.                 int r = j + 1, s = n;
  63.                 while(r<=s){
  64.                     int temp2 = X[r]; X[r] = X[s]; X[s] = temp2;
  65.                     r++; s--;
  66.                 }
  67.             }else{
  68.                 OK=false;
  69.             }
  70.         }
  71.     }
  72.  
  73.     return 0;
  74. }
  75.  
  76. int SinhToHop(){
  77.     int t; cin >> t;
  78.     while(t--){
  79.         int n,k; cin >> n >> k;
  80.         int X[n];
  81.         //INIT();
  82.         for(int i = 1; i<=k; i++){
  83.             X[i]=i;
  84.         }
  85.         bool OK = true;
  86.         while(OK){
  87.             //RESULT();
  88.             for(int i = 1; i<=k; i++){
  89.                 cout << X[i];
  90.             }
  91.             cout << endl;
  92.             int i = k;
  93.             while(i>0&&X[i]==n-k+i){
  94.                 i--;
  95.             }
  96.             if(i>0){
  97.                 X[i] = X[i]+1;
  98.                 for(int j = i+1; j <=k; j++){
  99.                     X[j] = X[i]+j-i;
  100.                 }
  101.             }else{
  102.                 OK=false;
  103.             }
  104.         }
  105.     }
  106.  
  107.     return 0;
  108. }
  109.  
  110.  
  111.  
  112.  
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement