Created
June 7, 2016 01:18
-
-
Save mcanvar/a3c828914d22e83bd483b5188e77c925 to your computer and use it in GitHub Desktop.
Parallel programming final exam 1st question. C program that calcullate pi number in a basic way.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Paralel Programlama Final Soruları | |
Soru 1) Argüman olarak n sayısını alan ve geriye pi sayısını döndüren C fonksiyonunu yazınız. | |
[email protected] | |
*/ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <math.h> | |
double calculatePi(int n) { | |
double piSum = 0.0; | |
for (int i = 0; i <= n; i++) | |
if (i % 2 == 0) | |
piSum += (1.0 / pow(4, i)) * (2.0 / (4.0 * i + 2.0) + 1 / (4.0 * i + 3.0) + 2.0 / (4.0 * i + 1.0)); | |
else | |
piSum += (-1.0 / pow(4, i)) * (2.0 / (4.0 * i + 2.0) + 1 / (4.0 * i + 3.0) + 2.0 / (4.0 * i + 1.0)); | |
return piSum; | |
} | |
double calculatePiRecursive(int n) { | |
if (n < 0) | |
return 0.0; | |
if (n % 2 == 0) | |
return (1.0 / pow(4, n)) * (2.0 / (4.0 * n + 2.0) + 1 / (4.0 * n + 3.0) + 2.0 / (4.0 * n + 1.0)) + calculatePiRecursive(n - 1); | |
else | |
return (-1.0 / pow(4, n)) * (2.0 / (4.0 * n + 2.0) + 1 / (4.0 * n + 3.0) + 2.0 / (4.0 * n + 1.0)) + calculatePiRecursive(n - 1); | |
} | |
int main(int argc, char* argv[]) { | |
printf("%lf\n", calculatePi(500)); | |
system("PAUSE"); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment