Advertisement
artur99

Untitled

Apr 9th, 2017
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.32 KB | None | 0 0
  1. 20(numar, n cifre, aceeași paritate):
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int n, st[20], l[20], c[20], k;
  6.  
  7. void init(){
  8.     st[k]=-1;
  9. }
  10. int succesor(){
  11.     if(st[k]<n){
  12.         st[k]++;
  13.         return 1;
  14.     }
  15.     return 0;
  16. }
  17. int valid(){
  18.     int i;
  19.     if(st[1] == 0) return 0;
  20.     for(i=1; i<k; i++){
  21.         if(st[i]%2 != st[i+1]%2)
  22.             return 0;
  23.     }
  24.     return 1;
  25. }
  26. int solutie(){
  27.     return k==n;
  28. }
  29. void tipar(){
  30.     int i;
  31.     for(i=1; i<=k; i++)
  32.         cout<<st[i];
  33.     cout<<endl;
  34. }
  35. void back(){
  36.     int as;
  37.     k=1;
  38.     init();
  39.     while(k>0){
  40.         do{}while((as=succesor())&&!valid());
  41.         if(as==1){
  42.             if(solutie()==1){
  43.                 tipar();
  44.             }else{
  45.                 k++;
  46.                 init();
  47.             }
  48.         }else{
  49.             k--;
  50.         }
  51.     }
  52. }
  53.  
  54.  
  55. int main(){
  56.     cin>>n;
  57.     back();
  58. }
  59.  
  60.  
  61.  
  62. 21(numar, n cifre distincte, cifrele divizibile cu 4):
  63. #include <iostream>
  64. using namespace std;
  65.  
  66. int n, st[20], l[20], c[20], k;
  67.  
  68. void init(){
  69.     st[k]=-1;
  70. }
  71. int succesor(){
  72.     if(st[k]<9){
  73.         st[k]++;
  74.         return 1;
  75.     }
  76.     return 0;
  77. }
  78. int valid(){
  79.     int i;
  80.     if(st[1] == 0) return 0;
  81.     if(st[k]%4!=0) return 0;
  82.     for(i=1; i<k; i++){
  83.         if(st[i] == st[k])
  84.             return 0;
  85.     }
  86.     return 1;
  87. }
  88. int solutie(){
  89.     return k==n;
  90. }
  91. void tipar(){
  92.     int i;
  93.     for(i=1; i<=k; i++)
  94.         cout<<st[i];
  95.     cout<<endl;
  96. }
  97. void back(){
  98.     int as;
  99.     k=1;
  100.     init();
  101.     while(k>0){
  102.         do{}while((as=succesor())&&!valid());
  103.         if(as==1){
  104.             if(solutie()==1){
  105.                 tipar();
  106.             }else{
  107.                 k++;
  108.                 init();
  109.             }
  110.         }else{
  111.             k--;
  112.         }
  113.     }
  114. }
  115.  
  116.  
  117. int main(){
  118.     cin>>n;
  119.     back();
  120. }
  121.  
  122.  
  123.  
  124. 22(număr, n cifre, să nu existe 2 cifre pare alăturate):
  125. #include <iostream>
  126. using namespace std;
  127.  
  128. int n, st[20], l[20], c[20], k;
  129.  
  130. void init(){
  131.     st[k]=-1;
  132. }
  133. int succesor(){
  134.     if(st[k]<9){
  135.         st[k]++;
  136.         return 1;
  137.     }
  138.     return 0;
  139. }
  140. int valid(){
  141.     int i;
  142.     if(st[1] == 0) return 0;
  143.     for(i=1; i<k; i++){
  144.         if(st[i] == st[k])
  145.             return 0;
  146.         if(st[k]%2==0 && st[k-1]%2==0)
  147.             return 0;
  148.     }
  149.     return 1;
  150. }
  151. int solutie(){
  152.     return k==n;
  153. }
  154. void tipar(){
  155.     int i;
  156.     for(i=1; i<=k; i++)
  157.         cout<<st[i];
  158.     cout<<endl;
  159. }
  160. void back(){
  161.     int as;
  162.     k=1;
  163.     init();
  164.     while(k>0){
  165.         do{}while((as=succesor())&&!valid());
  166.         if(as==1){
  167.             if(solutie()==1){
  168.                 tipar();
  169.             }else{
  170.                 k++;
  171.                 init();
  172.             }
  173.         }else{
  174.             k--;
  175.         }
  176.     }
  177. }
  178.  
  179.  
  180. int main(){
  181.     cin>>n;
  182.     back();
  183. }
  184.  
  185.  
  186. 23(numar, 6 cifre, 3 din ele sunt 0):
  187. #include <iostream>
  188. using namespace std;
  189.  
  190. int n, st[20], l[20], c[20], k;
  191.  
  192. void init(){
  193.     st[k]=-1;
  194. }
  195. int succesor(){
  196.     if(st[k]<9){
  197.         st[k]++;
  198.         return 1;
  199.     }
  200.     return 0;
  201. }
  202. int valid(){
  203.     int i, z=0;
  204.     if(k==n){
  205.         for(i=1; i<=k; i++){
  206.             if(st[i]==0) z++;
  207.         }
  208.         if(z!=3) return 0;
  209.     }
  210.     return 1;
  211. }
  212. int solutie(){
  213.     return k==n;
  214. }
  215. void tipar(){
  216.     int i;
  217.     cout<<4;
  218.     for(i=1; i<=k; i++)
  219.         cout<<st[i];
  220.     cout<<endl;
  221. }
  222. void back(){
  223.     int as;
  224.     k=1;
  225.     init();
  226.     while(k>0){
  227.         do{}while((as=succesor())&&!valid());
  228.         if(as==1){
  229.             if(solutie()==1){
  230.                 tipar();
  231.             }else{
  232.                 k++;
  233.                 init();
  234.             }
  235.         }else{
  236.             k--;
  237.         }
  238.     }
  239. }
  240.  
  241.  
  242. int main(){
  243.     n=5;
  244.     back();
  245. }
  246.  
  247.  
  248. 24(n mărgele, m culori - alăturatele distincte):
  249. #include <iostream>
  250. using namespace std;
  251.  
  252. int n, m, st[20], l[20], c[20], k;
  253.  
  254. void init(){
  255.     st[k]=0;
  256. }
  257. int succesor(){
  258.     if(st[k]<m){
  259.         st[k]++;
  260.         return 1;
  261.     }
  262.     return 0;
  263. }
  264. int valid(){
  265.     int i;
  266.     if(k>=2 && st[k] == st[k-1]) return 0;
  267.     return 1;
  268. }
  269. int solutie(){
  270.     return k==n;
  271. }
  272. void tipar(){
  273.     int i;
  274.     for(i=1; i<=k; i++)
  275.         cout<<st[i]<<" ";
  276.     cout<<endl;
  277. }
  278. void back(){
  279.     int as;
  280.     k=1;
  281.     init();
  282.     while(k>0){
  283.         do{}while((as=succesor())&&!valid());
  284.         if(as==1){
  285.             if(solutie()==1){
  286.                 tipar();
  287.             }else{
  288.                 k++;
  289.                 init();
  290.             }
  291.         }else{
  292.             k--;
  293.         }
  294.     }
  295. }
  296.  
  297.  
  298. int main(){
  299.     cin>>n>>m;
  300.     back();
  301. }
  302.  
  303.  
  304.  
  305. 25(studenți, zile):
  306. #include <iostream>
  307. using namespace std;
  308.  
  309. int n, st[20], l[20], c[20], k;
  310.  
  311. void init(){
  312.     st[k]=-1;
  313. }
  314. int succesor(){
  315.     if(st[k]<1){
  316.         st[k]++;
  317.         return 1;
  318.     }
  319.     return 0;
  320. }
  321. int valid(){
  322.     int i, c=0;
  323.     if(k==n){
  324.         for(i=1; i<=k; i++)
  325.             if(st[i]==1) c++;
  326.         if(c!=4) return 0;
  327.     }
  328.     return 1;
  329. }
  330. int solutie(){
  331.     return k==n;
  332. }
  333. void tipar(){
  334.     int i;
  335.     for(i=1; i<=k; i++)
  336.         cout<<st[i]<<" ";
  337.     cout<<endl;
  338. }
  339. void back(){
  340.     int as;
  341.     k=1;
  342.     init();
  343.     while(k>0){
  344.         do{}while((as=succesor())&&!valid());
  345.         if(as==1){
  346.             if(solutie()==1){
  347.                 tipar();
  348.             }else{
  349.                 k++;
  350.                 init();
  351.             }
  352.         }else{
  353.             k--;
  354.         }
  355.     }
  356. }
  357.  
  358.  
  359. int main(){
  360.     n = 8;
  361.     back();
  362. }
  363.  
  364.  
  365.  
  366.  
  367.  
  368. 25(siruri, 1-4, alaturate aceeași paritate):
  369. #include <iostream>
  370. using namespace std;
  371.  
  372. int n, st[20], l[20], c[20], k;
  373.  
  374. void init(){
  375.     st[k]=0;
  376. }
  377. int succesor(){
  378.     if(st[k]<4){
  379.         st[k]++;
  380.         return 1;
  381.     }
  382.     return 0;
  383. }
  384. int valid(){
  385.     int i;
  386.     if(k>=2)
  387.         if(st[k]%2 != st[k-1]%2) return 0;
  388.     return 1;
  389. }
  390. int solutie(){
  391.     return k==n;
  392. }
  393. void tipar(){
  394.     int i;
  395.     for(i=1; i<=k; i++)
  396.         cout<<st[i];
  397.     cout<<endl;
  398. }
  399. void back(){
  400.     int as;
  401.     k=1;
  402.     init();
  403.     while(k>0){
  404.         do{}while((as=succesor())&&!valid());
  405.         if(as==1){
  406.             if(solutie()==1){
  407.                 tipar();
  408.             }else{
  409.                 k++;
  410.                 init();
  411.             }
  412.         }else{
  413.             k--;
  414.         }
  415.     }
  416. }
  417.  
  418.  
  419. int main(){
  420.     cin>>n;
  421.     back();
  422. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement