回 帖 发 新 帖 刷新版面

主题:金字塔里有几元???????????????????????????????????????????

爸爸有A元,N个钱袋和M座金字塔(0<N<M<100<A),爸爸把A-N元藏在第M-N个钱袋中,爸爸把A-M元藏在第M+N个钱袋中,A=A-N,M=M-N,N=N+M,爸爸把A-N元藏在第M-N个钱袋中,爸爸把A-M元藏在第M+N个钱袋中,A=A-N,M=M+N,N=N+M……直到A<N;
爸爸又把有钱的钱袋按这样的顺序放进金字塔:第一座放一个,第2座放1+2个,第3座放1+2-3个……直到放完。
输入N,M,A,第几座金字塔,要求输出该金字塔的钱(没钱就输出0)。
例如,输入
98 99 101 99
输出
0[em10][em10][em10][em10][em10]

回复列表 (共4个回复)

沙发

建立数组呗
钱袋定成一阶的放对应钱袋的钱数
金字塔定成2阶,第一阶表示金字塔编号,第二阶表示该金字塔放的钱袋编号
然后算法题目已经给出了,先while(a>=n)循环放钱
然后设定累加器,放钱直到所有钱袋放完
最后查找相应的金字塔,把里面对应的钱袋对应的钱数加起来输出

板凳

s:=m;
repeat
b[m-n]:=a-n;
b[m+n]:=a-m;
a:=a-n;
m:=m-n;
n:=m+n;
until a<n;
for i:=1 to s do
if b[i]<>0 then 
 begin
 c[i]:=b[i];
 if i>2 then 
 for j:=1 to i do
 if j mod 2<>0 then c[j]:=0;
 else c[j]:=c[j]+b[i];
 if i=2 then c[i]:=c[i]+b[i];
 end;
write(c[金字塔的编号]); 
end. 
我用了repeat






3 楼


书上有,自己看

4 楼

有吗?????sss333难道我的书也被狗咬破了???

我来回复

您尚未登录,请登录后再回复。点此登录或注册