主题:有一道题大家一起做做——很好玩的
rxy
[专家分:0] 发布于 2005-07-28 17:49:00
现在有一堆桃子,N只猴子要平均分这些桃子。第一只猴子来了,它等了很久,其他猴子都不来,于是它把桃子平均分成了N堆,最后余下一个桃子,它觉得自己分桃辛苦了,于是就把那个多余的桃子吃掉了,结果是,这只猴子吃掉了一个桃子,又从中拿走了N堆中的一堆。接着第二只猴子来了,它并不知道先前已经来过一只。它想,N只猴子怎么分N-1堆桃子呢?于是它把所有桃子合在一起,重新分成N堆,又剩下一只,它吃了剩的桃子,又拿了一堆桃子……以后几只猴子也是这么做的。问原来至少有多少桃子?最后至少剩多少桃子?
Input
本题有多组测试数据。每组数据包括一个整数N(3 <= N <= 1000),代表猴子的个数。
Output
对于每组数据,输出一行两个数字:原来桃子的个数和剩下桃子的个数,两个数字之间用空格分开。
Sample Input
3
Sample Output
25 6
回复列表 (共7个回复)
沙发
绿步甲 [专家分:1610] 发布于 2005-07-29 18:58:00
我是新手,不知这样编,错在那里了?
var
a,b,c:real;
function aa(n:real):real;
var
s:real;
begin
if n=0
then aa:=2*s
else aa:=aa(n-1)/(a-1)*a+1;
end;
begin
read(a);
b:=aa(a);
c:=2*a;
write(b:0,' ',c:0)
end.
板凳
HRQ [专家分:60] 发布于 2005-07-29 20:52:00
N未定义[em3]
3 楼
cakex [专家分:0] 发布于 2005-07-31 19:33:00
n的范围是不是搞错了?我编了一个用搜索的程序,顶多只能支持到n=6......
可能要用高精度运算.
4 楼
MagicG [专家分:650] 发布于 2005-08-03 21:17:00
我的程序:
program monkey;
var n,t,k,x:longint;
begin
read(x);
k:=0;
n:=1;
while k<>x do
begin
inc(n);
k:=0;
begin
t:=n;
while (t-1) mod x*(x-1)=0 do
begin
t:=(t-1)div x*(x-1);
inc(k);
if k=x then break;
end;
end;
end;
writeln(n);
writeln(t);
end.
5 楼
MagicG [专家分:650] 发布于 2005-08-03 21:17:00
表忘了加分哦~~~```!
6 楼
口口and枕头 [专家分:1550] 发布于 2005-08-04 09:42:00
以经忘了~
7 楼
MagicG [专家分:650] 发布于 2005-08-04 10:03:00
55555````哭死,无语了......
他不是说很好玩的吗?上当受骗了```
我来回复