Skip to content

Instantly share code, notes, and snippets.

@mcanvar
Created June 7, 2016 01:18
Show Gist options
  • Save mcanvar/a3c828914d22e83bd483b5188e77c925 to your computer and use it in GitHub Desktop.
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.
/*
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