pascal问题,请进

来源:百度知道 编辑:UC知道 时间:2024/06/20 08:05:36
假设有一张N元的纸币,10<=N<=100。要将其兑换成1元、2元、5元的硬币,每种硬币可选的数量都无限。但是每种面值硬币至少要使用一枚。问有多少种不同的兑换方案。
例如:当N=10时,共有2种方案。可以拆分成1+1+1+2+5和1+2+2+5。我们说1+2+1+1+5和之前的第一个方案是一样的,因为我们不关心顺序;5+5或1+1+2+2+2+2等这些方案都不算在内,由于它们缺少了某种硬币。
输入N,输出兑换方案总数。
样例:
输入 100、
输出 461
第一题用while语句
n只猴子选大王,选举办法如下:从头到尾1,2,3报数,凡报3的退出,余下的从尾到头1,2,3报数,凡报3的退出...如此类推,当剩下两只猴子时,取这时报1的为王,若想当猴王,请问当初应占据什么位置(pos)?
输入文件中只一个正整数N(2----100),输出文件中也是一个正整数pos,是猴王原来占据的位置。

换钱问题:
我用delphi做的,加一个button,一个memo。
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,n:integer;
begin
n:=0;
a:=0;
while a<19 do
begin
b:=0;
while b<49 do
begin
c:=0;
while c<99 do
begin
if (a*5+b*2+c*1=100-(1+2+5)) then
begin
n:=n+1;
end;
c:=c+1;
end;
b:=b+1;
end;
a:=a+1;
end;
memo1.Lines.Add(inttostr(n));
end;

??什么意思

第二题 有名的猴子选大王 提供两种方法 第一种加注释了 好理解 一般用第二种
【参考程序1】

const number=3;

var n,num,i,total:integer;

a:array[1..100]of boolean; order:boolean;

begin

writeln('input n:');

readln(n);

total:=n; {队伍中剩下的猴子数}

for i:=1 to n do a[i]:=true;