#include <stdio.h>
#include <conio.h>
int f(int n){
 int carpim = 1;
 for(int i = 1;i<=n;i++){
         carpim = carpim * i;
 }
 return carpim;
            
}
int f2(int n){
 if(n == 0){
      return 1;
 }   
 return n* f2(n-1);
}
int pow (int a,int b){
 int sonuc = 1;
 for(int i = 0;i<b;i++){
         sonuc = a * sonuc;        
 }   
 return sonuc;
}
int power (int a , int b){
 if ( b==0){
    return 1;   
 }
 return a * power (a,b-1);
}
int fib(int n){
    int a =1;
    int b =1;
    int c;
    for(int i = 2;i<=n;i++){
            c=a+b;
            a=b;
            b=c;        
    }
    return c;
}
int fib2(int n ){
    if(n==1||n==0){
                   return 1;
    }
    return fib2(n-1) + fib2(n-2);
}
int toplam ( int n){
    int topla = 0;
    for (int i = 0;i<=n;i++){
        topla = topla + i;
    }
    return topla;
}
int toplam2 (int n ){
    if(n==0)
            return 0;
    return n+ toplam2(n-1);
}
int t(int n){
    if(n<=2)
            return 1;
    return 3*t(n-2) + 2*t(n-3);
}
void harf(int n){
    if(n>=90)
    ;
    else{
    printf("%c",n);
    harf(n+1);
    }
}

int j(int kisi,int atlama,int basla,int elenen,int a[]){
    if(elenen >= kisi-atlama+1){
              for(int i = 0;i<kisi;i++){
                      if(a[i]==0)
                                 printf("\nelenmeyen : %d",i);
              }
    }
    else{
         printf(" %d",basla); 
         a[basla]=1;    
         j(kisi,atlama,(basla+atlama)%kisi,elenen+1,a);
    }
}

int dizitopla(int a[],int boy){
    int toplam = 0;
    for(int i = 0;i<boy;i++){
            toplam += a[i];
    }           
    return toplam;
    
}
int main(){
    int a[5]={4,7,2,9,1};
    printf("dizinin toplami : %d \n", dizitopla(a,5));
    printf(" 5! = %d",f(5));
    printf(" 5! = %d",f2(5));
    printf("\n 2^3 = %d",pow(2,3));
    printf("\n 2^3 = %d",power(2,3));
    printf("\n %d ",fib(7));
    printf("\n %d ",fib2(7));
    printf("\n %d",toplam(5));
        printf("\n %d",toplam2(5));
    printf("\n %d",t(6));   
    for(int i = 65;i<91;i++){
            printf("%c",i);  
    } 
    harf(65);
    printf("\n");
    int b[41];
    for(int i = 0;i<41;i++){
            b[i]=0;
    }
    j(41,3,5,0,b);
    getch();
    return 0;
}

