Last active
January 24, 2021 19:12
-
-
Save potados99/65df57e135ac190f3d7672eb814ce25e to your computer and use it in GitHub Desktop.
Obfuscated pi.c explained
This file contains 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
// 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