馬騮分桃

馬騮分桃
馬騮分桃

『甲』『乙』『丙』『丁』『戊』馬騮相約摘桃,日落斟酌後,聽朝再蒞分桃.

入夜『甲』『乙』『丙』『丁』『戊』馬騮相繼前後腳翻蒞, 『分桃伍份』,多出『壹個桃』喫咗落肚, 後拎走『壹份桃』.

問『甲』『乙』『丙』『丁』『戊』伍馬騮至小摘幾多桃?

問『戊』馬騮走後,仲剩幾多桃?

 

此題出自英國物理學家『保羅·狄拉克』. 系電腦時代,變得喫生菜咁喫.

『分桃伍份』,多出『壹個桃』喫咗落肚, 後拎走『壹份桃』.

即『x = x – 1 – (x / 5)』

 

bool test(int x)

{

// 多出『壹個桃』吃咗落肚, 後拎走『壹份桃』.

if ((x % 5) != 1)// 『甲』

return false;

x = x – 1 – (x / 5);

 

if ((x % 5) != 1)// 『乙』

return false;

x = x – 1 – (x / 5);

 

if ((x % 5) != 1)// 『丙』

return false;

x = x – 1 – (x / 5);

 

if ((x % 5) != 1)// 『丁』

return false;

x = x – 1 – (x / 5);

 

if ((x % 5) != 1)//『戊』

return false;

return true;

}

自1開始,暴力測試.

    for (x = 1; ; ++x)  {

if (test(x) == true) {

printf(“桃總量=%i\r\n”, x);

break;

}

}

 

問『戊』馬騮走後, 仲剩幾多桃 ?

int caleX5 (int x){

// 多出『壹個桃』喫咗落肚, 後拎走『壹份桃』.

x = x – 1 – (x / 5);

x = x – 1 – (x / 5);

x = x – 1 – (x / 5);

x = x – 1 – (x / 5);

x = x – 1 – (x / 5);

return x;

}

 

評論