Skip to content

Instantly share code, notes, and snippets.

@potados99
Last active January 24, 2021 19:12
Show Gist options
  • Save potados99/65df57e135ac190f3d7672eb814ce25e to your computer and use it in GitHub Desktop.
Save potados99/65df57e135ac190f3d7672eb814ce25e to your computer and use it in GitHub Desktop.
Obfuscated pi.c explained
// See https://www.cise.ufl.edu/~manuel/obfuscate/pi.c
#include <stdio.h>
// Increase area for 1.
// If heading unary operator '-' does not exist, increase dia for 1.
#define _ (area++) < 0 ? 0 : dia++;
long area = 0;
long dia = 0;
void yeah() {
// The area will increase on every '_'.
// Note that start of each line has no heading '-'.
// So the dia will increase on every incounter of a new line.
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_
}
int main() {
yeah();
// For area 'a' and dia 'R':
// a = pi * r^2
// = pi * (R/2)^2
// = pi * R^2 * (1/4)
//
// Therefore pi is given as:
// pi = 4 * a / R^2
printf("%.3f\n", 4. * area / (dia*dia));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment