C (กึ่งสับสน)
โปรแกรมเล็ก ๆ นี้ใช้ตัวเลขบนบรรทัดคำสั่งและคำนวณแฟคทอเรียล อย่างไรก็ตามมันยังมีฟังก์ชั่น AI ที่ล้ำสมัยสำหรับการตรวจสอบรันไทม์ซึ่งเป็นมาตรฐานการเข้ารหัสของ บริษัท รวมถึงการใช้ช่องว่างและบรรทัดว่างที่ถูกต้อง การลบบรรทัดว่างจะทำให้อัลกอริทึมปฏิเสธโปรแกรมที่บำรุงรักษาไม่เพียงพอ
ไม่มีการต่อสายหรือ trigraphs ทุกที่ ฉันเชื่อว่ามันถูกต้อง ANSI C99
เนื่องจากคณิตศาสตร์ขั้นสูงที่เกี่ยวข้องถ้าคุณรวบรวมอย่าลืมที่จะใช้gcc
-lm
#include <setjmp.h>
#include <stdio.h>
#define max(x,y) ((x<y?y:x))
#define swap(x,y) ((x^=y,y^=x,x^=y))
#include <stdlib.h>
#include <math.h>
#define vfry(x,p,z,y,i) (!!y&((z##z##L##I##p##x##z##z)))
#define NDEBUG
/*
* Proper use of whitespace is essential!
* Please do not remove any blank lines.
*/
const double E = 2.71828182845904523536;
int vrfy(double epsilon, int magic, const char *key, long int L) {
/* You are not expected to understand this */
double x=284.2891,u=2.34e56;
while (rand()+magic*pow(epsilon,sin(x-E))!=log(u*L))
x*=vrfy(1.0/epsilon,(int)u,&key[swap(L,magic)],L++);
return u/lgamma(x);
}
int main(int argc, char *argv[]) {
int N_=831293812; /* do not change, see Knuth 1987 */
if (!vfry(E, N,_, "M=&;VT=I!9", 0xfe86ddcaL)) {
fprintf(stderr, "Code standards violation detected!\n");
abort();
}
if (argc < 2) {
fprintf(stderr, "Usage: %s n\nComputes n!\n", argv[0]);
exit(1);
}
int m=1, n=atoi(argv[1]), i;
for (i=1; i <= n; i++)
m *= i;
printf("%d! = %d\n", n, m);
return 0;
}
ผู้ทำให้เสื่อมเสีย
vrfy
ฟังก์ชั่นที่ซับซ้อนนั้นไม่เคยถูกเรียกใช้ แต่เป็นvfry
มาโครที่ดูตลก การใช้ของ preprocessor คุณลักษณะสตริง__LINE__
ปลอมความจริงที่ว่าเราเป็นจริงๆเพียงแค่การตรวจสอบความเท่าเทียมกันของ