fork download
  1. #include <iostream>
  2. #include <random>
  3.  
  4. bool ShowTree(std::size_t N){
  5. #if 0 //select auther's matching or parfect random
  6. //いやー、ローカルで綺麗なツリーになかなかならなかったので手動指定しましたがalgorithmはランダム方面です。
  7. std::random_device rd;
  8. std::mt19937 mt(rd());
  9. #else
  10. std::mt19937 mt(1);
  11. #endif
  12. std::discrete_distribution<> dd = { 63, 1, 1, 1, 1, 1, 1, 1, };
  13. std::string Dec = "*NiXJo%b";
  14.  
  15. for (std::size_t j = 0; j < N; j++) std::cout << ' ';
  16. std::cout << "★";
  17. for (std::size_t i = 0; i < N+1; i++){
  18. for (std::size_t j = i-1; j < N; j++) std::cout << ' ';
  19. for (std::size_t j = 0; j < (i * 2); j++) std::cout << Dec[dd(mt)];
  20. std::cout << std::endl;
  21. }
  22. for (std::size_t j = 0; j < N; j++) std::cout << ' ';
  23. std::cout<<"||"<<std::endl;
  24.  
  25. return true;
  26. }
  27.  
  28. int main(){
  29. for (int i = 0; i < 7; i++){
  30. ShowTree(i);
  31. }
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
★
||
 ★
 bX
 ||
  ★
  bX
 *b**
  ||
   ★
   bX
  *b**
 **X***
   ||
    ★
    bX
   *b**
  **X***
 ***N**X*
    ||
     ★
     bX
    *b**
   **X***
  ***N**X*
 **********
     ||
      ★
      bX
     *b**
    **X***
   ***N**X*
  **********
 ************
      ||