ivana_andreevska

Rekurzija 1

Jun 9th, 2021
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.69 KB | None | 0 0
  1. Да се напише програма во која од тастатура се чита димензијата и елементите на низа од природни броеви (не повеќе од 100 ).
  2. Да се испечатат сите елементи од низата што претставуваат силни броеви (секој во нов ред). Еден број се смета за силен ако збирот
  3. од факториелите од секоја негова цифра е еднаков на самиот тој број. На пример, бројот 145 е силен број бидејќи
  4.  
  5. 145 = 1! + 4! + 5!
  6.  
  7. Проверката дали даден број е силен да се реализира со посебна функција, а пресметувањето на факториел на број да се реализира со
  8. посебна рекурзивна функција.
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11.  
  12. int faktoriel(int broj)
  13. {
  14.     if(broj==1){
  15.         return 1;
  16.     }
  17.     else
  18.         return broj*faktoriel(broj-1);
  19. }
  20. int proverka(int broj)
  21. {
  22.     int br=broj;
  23.     int suma=0;
  24.  
  25.     while(broj!=0)
  26.     {
  27.         int cifra=broj%10;
  28.         suma+=faktoriel(cifra);
  29.         broj/=10;
  30.     }
  31.         if(br==suma)
  32.         {
  33.             return 1;
  34.         }
  35.         else{
  36.             return 0;
  37.         }
  38.     }
  39.  
  40. int main()
  41. {
  42.     int i,n;
  43.     scanf("%d",&n);
  44.     int niza[n];
  45.  
  46.     for(i=0;i<n;i++)
  47.     {
  48.         scanf("%d",&niza[i]);
  49.     }
  50.  
  51.     for(i=0;i<n;i++)
  52.     {
  53.         if(proverka(niza[i]))
  54.         {
  55.             printf("%d\n",niza[i]);
  56.         }
  57.     }
  58.  
  59.     return 0;
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment