function calc():integer;
var
x : integer;
s : real;
begin
x := 1;
while True do
begin
s := ((((x * 5 + 1)* (5/4) + 1)*(5/4)+1)*(5/4)+1)*(5/4)+1;
if s = Trunc(s) then
begin
result := Trunc(s);
exit;
end;
inc(x);
end;
end;
#include <stdio.h>
int GetX(int n)
{
int x;
static int s;
if (n == 1)
{
s = 1;
x = 1;
}
else
{
x = GetX(n-1);
s *= 5;
x += s * 4;
}
return x;
}
int main(int argc, char* argv[])
{
printf("\n桃子总数:%d\n",GetX(5));
return 1;
}
//猴子1 全部桃子 分成5份 吃掉一個 拿走1/5
//猴子2 剩下的桃 分成5份 吃掉一個 拿走1/5
//猴子3 剩下的桃 分成5份 吃掉一個 拿走1/5
//猴子4 剩下的桃 分成5份 吃掉一個 拿走1/5
//猴子5 剩下的桃 分成5份 吃掉一個 拿走1/5
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 10000 do //從1-10000嘗試桃子
begin
flag:=false; //全局變量
fentao(i,5);
if flag then
begin
showmessage(inttostr(i));
exit;
end;
end;
end;
procedure TForm1.fentao(itaozi, ituzi: integer);
begin
if ituzi=0 then
begin
flag:=true;
exit;
end;
if ((itaozi-1)mod 5)=0 then //桃子總數為去掉一個後,可以平分為5份
begin
itaozi:=round((itaozi-1)/5)*4; //小猴子動過手腳後,所剩桃子總數
if ituzi>0 then
fentao(itaozi,ituzi-1); //繼續動手腳
end;
end;