Files
ikcu-yzm/YZM502/final-soru1.c

123 lines
2.5 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include <stdio.h>
#include <math.h>
int fibbonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return (fibbonacci(n - 1) + fibbonacci(n - 2));
}
}
void fibbonacciYaz() {
int n, i;
printf("Bir sayi giriniz: ");
scanf("%d", &n);
for (i = 0; i <= n; i++) {
printf("\nIndex: %d | Fibbonacci: %d", i, fibbonacci(i));
}
}
int faktoryel(long sayi) {
if (sayi <= 1) {
return sayi;
} else {
return (sayi * faktoryel(sayi - 1));
}
}
void faktoryelFormul() {
int n;
printf("Bir sayi giriniz: ");
scanf("%d", &n);
long nFak;
long nEksiBirFak;
long nArtiBirFak;
double sonuc;
nFak = faktoryel(n);
nEksiBirFak = faktoryel(n - 1);
nArtiBirFak = faktoryel(n + 1);
sonuc = ((nFak * nEksiBirFak) * 1.0) / nArtiBirFak;
printf("\n*******************************");
printf("\n Formül Soucu : %.6f", sonuc);
printf("\n n: %d | n+1: %d | n-1: %d", nFak, nArtiBirFak, nEksiBirFak);
printf("\n*******************************");
}
void kokluFormul() {
int a;
int b;
int c;
double sonuc;
printf("a: ");
scanf("%d", &a);
printf("b: ");
scanf("%d", &b);
printf("c: ");
scanf("%d", &c);
double p1, p2, p3;
p1 = (-1 * b);
p2 = sqrt((b * b) - (4 * a * c));
p3 = (2 * a);
sonuc = (p1 + p2) / p3;
printf("\n*******************************");
printf("\n Formül Soucu : %.10f", sonuc);
printf("\n*******************************");
}
int menu() {
int secim = 0;
printf("\n\n-------------------------------------------------\n");
printf("(1) Fibonacci dizimi hesaplama \n");
printf("(2) n!(n-1)!/(n+1)! hesaplama \n");
printf("(3) Formül hesaplama \n");
printf("ÇIKIŞ İÇİN : -1 \n");
printf("-------------------------------------------------\n\n");
printf("Seçiminizi Giriniz: ");
do {
scanf("%d", &secim);
if ((secim < 1 || secim > 3) && (secim != -1)) {
printf("\nYanlış değer girdiniz tekrar giriş yapınız: ");
}
} while ((secim < 1 || secim > 3) && (secim != -1));
return secim;
}
void main() {
int secim = 0;
do {
secim = menu();
switch (secim) {
case 1:
fibbonacciYaz();
break;
case 2:
faktoryelFormul();
break;
case 3:
kokluFormul();
break;
}
} while (secim != -1);
}