GerexD

wrist icy

Apr 11th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. #include <iostream>
  2. /**
  3. 16. Adjuk össze az összes olyan ötjegyû számot, amely egymástól külön-
  4. bözô, csak páratlan számjegyekbôl épül fel.*/
  5. using namespace std;
  6. int v[50], van[50]={0},ossz=0;
  7.  
  8. int szam()
  9. {
  10. int sz=0;
  11. for(int i=1;i<=5;i++)
  12. sz=sz*10+v[i];
  13. }
  14. void back(int k)
  15. {
  16. for(int i=1;i<=9;i=i+2)
  17.  
  18. if(van[i]==0)
  19. {
  20. v[k]=i;
  21. van[i]=1;
  22. if(k==5){ ossz=ossz+szam();
  23. cout<<szam()<< " ";}
  24.  
  25. else back(k+1);
  26. van[i]=0;
  27.  
  28. }
  29.  
  30. }
  31.  
  32.  
  33. int main()
  34. {
  35. back(1);
  36. cout<<ossz;
  37. return 0;
  38. }
  39. +++++++++++++++++++++#include <iostream>
  40. /**
  41. 11. Adott egy A, n elemû és egy B m elemû halmaz. Irjuk ki az összes
  42. lehetséges f:A->B injektív függvényt.
  43. Pl: ha A={1,2} és B={3,4,5}, akkor:
  44. 1. f(1)=3, f(2)=4
  45. 2. f(1)=3, f(2)=5
  46. 3. f(1)=4, f(2)=3
  47. 4. f(1)=4, f(2)=5
  48. 5. f(1)=5, f(2)=3
  49. 6. f(1)=5, f(2)=4*/
  50. using namespace std;
  51. int a[50],b[50],n,m,v[50];
  52.  
  53. void kiir()
  54. {
  55. for(int i=1;i<=n;i++){
  56. cout<<a[i]<<" -> "<<b[v[i]];
  57. cout<<endl;}
  58.  
  59. }
  60. int helyes(int i, int k)
  61. {
  62. for(int j=1;j<k;j++)
  63. if(i==v[j]) return 0;
  64. return 1;
  65.  
  66.  
  67. }
  68.  
  69. void back(int k)
  70. {
  71. for(int i=1;i<=m;i++)
  72. {
  73. if(helyes(i,k))
  74. {
  75. v[k]=i;
  76. if(k==n) kiir();
  77. else back(k+1);
  78. }
  79. }
  80. }
  81. int main()
  82. {
  83. cin>>n>>m;
  84. for(int i=1;i<=n;i++)
  85. cin>>a[i];
  86. for(int i=1;i<=m;i++)
  87. cin>>b[i];
  88. back(1);
  89.  
  90.  
  91. return 0;
  92. }
  93. ++++++++++++++++++++++++++++++
  94. #include <iostream>
  95. ///zaszlos, sarga mellett nem lehet feher
  96. ///n szinnel
  97. using namespace std;
  98. int v[50],n,van[50]={0};
  99. string a[50];
  100. int helyes(int i,int k)
  101. {
  102. if(a[i]=="sarga" && a[v[k-1]]=="feher" || a[v[k-1]]=="sarga" && a[i]=="feher")
  103. return 0;
  104. return 1;
  105. }
  106. void kiir()
  107. {
  108. for(int i=1;i<=3;i++)
  109. cout<<a[v[i]]<<" ";
  110. cout<<endl;
  111. }
  112. void back(int k)
  113. {
  114. for(int i=1;i<=n;i++)
  115. {
  116. if(van[i]==0 && helyes(i,k))
  117.  
  118. {
  119. v[k]=i;
  120. van[i]=1;
  121. if(k==3) kiir();
  122. else back(k+1);
  123. van[i]=0;
  124. }
  125. }
  126. }
  127. int main()
  128. {
  129. cout<<"N ";cin>>n;
  130. for(int i=1;i<=n;i++)
  131. cin>>a[i];
  132. back(1);
  133. return 0;
  134. }
  135. +++++++++++++++++++++++++++++++++++++++
  136. #include <iostream>
  137. /**
  138. A Backtracking módszert alkalmazva képezzük az összes olyan 3 számjegyű számot, amelyek nem tartalmaznak azonos számjegyeket és bármely két egymás melletti számjegyük különböző paritású.
  139. Az így képzett első hat szám rendre: 103, 105, 107, 109, 123, 125.
  140. Melyik a kilencedik szám? (6p.)
  141. */
  142. using namespace std;
  143. int v[50], van[20]={0};
  144. void kiir()
  145. {
  146. for(int i=1;i<=3;i++)
  147. cout<<v[i];
  148. cout<<" ";
  149. }
  150. int helyes(int i,int k)
  151. {
  152. if(k==1 && i==0) return 0;
  153. if(i%2==v[k-1]%2) return 0;
  154. if(van[i]==1) return 0;
  155. return 1;
  156.  
  157.  
  158. }
  159. void back(int k)
  160. {
  161. for(int i=0;i<=9;i++)
  162. if(helyes(i,k))
  163. {
  164. v[k]=i;
  165. van[i]=1;
  166. if(k==3) kiir();
  167. back(k+1);
  168. van[i]=0;
  169. }
  170. }
  171.  
  172. int main()
  173. {
  174. back(1);
  175. return 0;
  176. }
  177. +++++++++++++++++++++++++++
  178. #include <iostream>
  179. /**
  180. 9. Irjuk ki az összes n számjegybôl álló számot, amelyben a számjegyek
  181. összege egy s természetes szám.
  182. Pl: ha n=4 és s=5, akkor a számok 1004, 1013, 1022, ...*/
  183. using namespace std;
  184. int v[30],n,s,ossz=0;
  185.  
  186. int helyes(int i, int k)
  187. {
  188. if(k==1 && i==0) return 0;
  189. if(ossz+i>s) return 0;
  190. return 1;
  191. }
  192. int megoldas(int k)
  193. {
  194. if(ossz==s && k==n) return 1;
  195. return 0;
  196. }
  197. void kiir()
  198. {
  199. for(int i=1;i<=n;i++)
  200. cout<<v[i];
  201. cout<<" "<<endl;
  202.  
  203. }
  204. void back(int k)
  205. {
  206. for(int i=0;i<=s;i++)
  207. if(helyes(i,k))
  208. {
  209. v[k]=i;
  210. ossz=ossz+i;
  211. if(megoldas(k)) kiir();
  212. else if (k<n) back(k+1);
  213. ossz=ossz-i;
  214. }
  215.  
  216. }
  217. int main()
  218. {
  219. cout<<"N ";cin>>n;
  220. cout<<"S ";cin>>s;
  221. back(1);
  222.  
  223. return 0;
  224. }
  225. ++++++++++++++++++++++
Add Comment
Please, Sign In to add comment