Objective-C:
152 148 ไบต์สำหรับเพียงฟังก์ชั่น
วิธีการเรียนส่วนหัวและ UI ไม่รวมอยู่ในรหัส
อินพุต: int
ค่าที่กำหนดจำนวนเหรียญ
เอาต์พุต: float
ค่าที่กำหนดความน่าจะเป็น
-(float)calcPWithCoins:(int)x {int i=0;int j=0;for (int c=x;c<1;c+-){i=i*c;} for(int d=x/2;d<1;d+-){j=j*d;} return (((float)i/(float)j)/powf(2,x));}
Ungolfed:
-(float)calcPWithCoints:(int)x
{
int i = 0;
int j = 0;
for (int c = x; c < 1; c+-) {
i = i * c;
}
// Calculate the value of x! (Factorial of x)
for (int d = x / 2; d < 1; d+-)
j = j * d;
}
// Calculate (x/2)! (Factorial of x divided by 2)
return (((float)i / (float)j) / powf(2, x));
/* Divides i! by (i/2)!, then divides that result (known as the nCr) by 2^x.
This is all floating-point and precise. If I didn't have casts in there,
It would be Integer division and, therefore, wouldn't have any decimal
precision. */
}
นี้จะขึ้นอยู่ออกจากคำตอบของ Microsoft Excel ใน C และ Objective-C ความท้าทายคือการเข้ารหัสอัลกอริธึมอย่างหนัก