Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. 1.
  2. /* Да се напише рекурзивна функција која ќе пресметува двоен факториел (n!!).
  3.  
  4. Двојниот факториел се пресметува по формулата:
  5.  
  6. n!!=n(n−2)(n−4)...2∗0!, при што 0!=1 (ако n е парен број)
  7. n!!=n(n−2)(n−4)...3∗1!, при што 1!=1 (ако n е непарен број) */
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11.  
  12. int faktoriel(int n);
  13. int main() {
  14. int n;
  15.  
  16. printf("Vnesi broj: \n");
  17. scanf("%d", &n);
  18.  
  19. printf("Dvojniot faktoriel na %d e %d\n", n, faktoriel(n));
  20.  
  21. system ("pause");
  22. return 0;
  23.  
  24. }
  25.  
  26. int faktoriel(n) {
  27. if (n == 0 || n == 1) return 1;
  28. else return n * faktoriel(n-2);
  29. }
  30. -----------------------------------------------------------------------------------------------------------------------
  31. 2.
  32. /* Да се напише рекурзивна функција која ќе пресметува производот на цифрите од повеќецифрен број.
  33. Да се најде односот на производот на цифрите и првобитниот број и да се испечати на екранот. */
  34.  
  35. #include <stdio.h>
  36. #include <stdlib.h>
  37.  
  38. int proizvodCifri(int n);
  39. int main() {
  40. int n;
  41.  
  42. printf("Vnesi broj: \n");
  43. scanf("%d", &n);
  44.  
  45. printf("Odnosot na proizvodot na cifrite %d i brojot %d e %d\n", proizvodCifri(n), n, n/proizvodCifri(n));
  46.  
  47. system ("pause");
  48. return 0;
  49.  
  50. }
  51.  
  52. int proizvodCifri(n) {
  53. if (n == 0) return 1;
  54. else return n % 10 * proizvodCifri(n / 10);
  55. }
  56. -----------------------------------------------------------------------------------------------------------------------
  57. 3.
  58. /* Да се напише рекурзивна функција која ја пресметува сумата на сите последователни двоцифрени броеви
  59. кои го сочинуваат соодветниот број. */
  60.  
  61. #include <stdio.h>
  62. #include <stdlib.h>
  63.  
  64. int sumaDvocifreni(int n);
  65. int main() {
  66. int n;
  67.  
  68. printf("Vnesi broj: \n");
  69. scanf("%d", &n);
  70.  
  71. printf("Zbirot na dvocifrenite broevi vo brojot %d e %d\n", n, sumaDvocifreni(n));
  72.  
  73. system ("pause");
  74. return 0;
  75.  
  76. }
  77.  
  78. int sumaDvocifreni(n) {
  79. if (n == 0) return 0;
  80. else return n % 100 + sumaDvocifreni(n/100);
  81. }
  82. -----------------------------------------------------------------------------------------------------------------------
  83. 4.
  84. /* Да се напише _рекурзивна функција_ која ќе ја изминува низа од цели броеви и ќе ја печати во обратен редослед.
  85. Низата може да има максимум 100 елементи.
  86.  
  87. пр:
  88. оригинална низа: 12 23 54 65 34
  89. програмата печати: 34 65 54 23 12 */
  90.  
  91. #include <stdio.h>
  92. #include <stdlib.h>
  93.  
  94. void swap(int niza[], int n);
  95. int main() {
  96. int i, n, niza[100];
  97.  
  98. printf("Vnesi golemina na niza: \n");
  99. scanf("%d", &n);
  100.  
  101. printf("Vnesi niza: \n");
  102. for(i = 0; i < n; i++) {
  103. scanf("%d", &niza[i]);
  104. }
  105.  
  106. swap(niza, n);
  107.  
  108. system ("pause");
  109. return 0;
  110. }
  111.  
  112. void swap(int niza[], int n) {
  113.  
  114. printf("%d ", niza[n-1]);
  115.  
  116. if(n-1 == 1) {
  117. printf("%d ", niza[0]);
  118. }
  119.  
  120. if(n-1 > 1) {
  121. swap(niza, n-1);
  122. }
  123. }
  124. -----------------------------------------------------------------------------------------------------------------------
  125. 5.
  126. /* 5 */
  127.  
  128. #include <stdio.h>
  129. #include <stdlib.h>
  130.  
  131. int suma(int Aniza[], int j);
  132. int main() {
  133. int i, j, n, sumaElementi;
  134. int Aniza[100], Bniza[100];
  135.  
  136. printf("Vnesi golemina na niza: \n");
  137. scanf("%d", &n);
  138.  
  139. printf("Vnesi niza: \n");
  140. for (i = 0; i < n; i++) {
  141. scanf("%d", &Aniza[i]);
  142. if (Aniza[i] < 0) {
  143. Aniza[i] = 0;
  144. }
  145. }
  146. Bniza[0] = 0;
  147.  
  148. for (i = n-1; i > 0; i--) {
  149. sumaElementi = 0;
  150. for (j = i - 1; j >= 0; j--) {
  151. sumaElementi += suma(Aniza, j);
  152. }
  153. Bniza[i] = sumaElementi;
  154. }
  155.  
  156. for (i = 1; i < n; i++) {
  157. printf("%d ", Bniza[i-1]);
  158. }
  159. printf("%d\n", Bniza[n-1]);
  160.  
  161.  
  162. system ("pause");
  163. return 0;
  164. }
  165.  
  166. int suma(int Aniza[], int j) {
  167.  
  168. if (j == -1) {
  169. return 0;
  170. }
  171.  
  172. if (j > -1) {
  173. return Aniza[j] + suma(Aniza, j-1);
  174. }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement