pascal问题 20

1.某停车场放有自行车,三轮车和四轮车共30辆,其中三轮车不多于5辆,又数得他们的车轮共100个,试求他们各有多少?按自行车,三轮车顺序输出,每两数空一格。2.试求出1-... 1.某停车场放有自行车,三轮车和四轮车共30辆,其中三轮车不多于5辆,又数得他们的车轮共100个,试求他们各有多少?按自行车,三轮车顺序输出,每两数空一格。
2.试求出1--10000内所有10以内的素数的倍数,重复的只算一个,统计它们的和。
3.某班有48个学生,从1--48编号,并按学号顺序分成6组,求出所有学号为所在组号倍数的学生号,输出要求为1行,输出要两两空格。
答完后再奖励50分!
展开
 我来答
OSCARbeat
2010-08-07 · 超过28用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:78.9万
展开全部
1.先是第一题.程序:
Program prac1;{程序头}
Var
n,i,j,k:integer;{n表示当前方案的号数,i是自行车的数量,j是三轮车的数量,k是四轮车的数量}
Begin
n:=0;{先将n初始化为0}
For i:=0 to 30 do{数据比较弱,所以采取枚举的方式,从0一直枚举到其最大限度.自行车因为只有两个轮,所以说他的最大限度是30辆}
For j:=0 to 5 do{三轮车不多于五辆}
For k:=0 to 25 do{四轮车最多可以有100÷4=25辆}
If i+j+k=30 then
If i*2+j*3+k*4=100 then{如果符合总和三十辆,轮子一百个就输出}
Begin
Inc(n);
Writeln('Case ',n,':');
Writeln(i,' ',j,' ',k);{输出}
End;
End.{结束}

如果不符合输出之类的要求改一改就可以了,这个程序我还是有自信的.
第二题:
该题策略仍同上题一样.枚举

Program prac2;
Const{常量定义}
Prime:Array[1..4]of Byte=(2,3,5,7);{定义10以内的4个质数}
Maxn=10000;{最大范围}

Var
sum:LongInt;{总和}
i:Integer;{枚举用循环变量}
j:Byte;{枚举质数组Prime}
Bool:Array[2..10000]of Boolean;{判定某数是否已经出现过,出现过用True,否则用False}

Begin
Fillchar(Bool,Sizeof(Bool),false);{Fillchar函数将整个Bool赋为初值}
sum:=0;{这些数的总和}
For i:=2 to Maxn do{枚举}
For j:=1 to 4 do
If i Mod Prime[j]=0 then{先判定该数是否符合是素数的倍数的条件}
If Not Bool[i] then{再判定该数是否重复}
Begin
Inc(sum,i);{等效于Sum:=Sum+i;}
Bool[i]:=Not Bool[i];{将该数设为已重复过}
End;
Writeln(sum);{输出总和}
End.

至于第三题也是枚举,具体就不说明了,你看一看:

Program prac3;

Const
Maxn=48;

Var
n,tail,i:LongInt;
Que:Array[1..48]of LongInt;

Begin
n:=1;
tail:=0;
For i:=1 to Maxn do
Begin
If i Mod n=0 then
Begin
Inc(tail);
Que[tail]:=i;
End;
If i Mod 6=0 then
Inc(n);
End;
For i:=1 to tail-1 do
Write(Que[i],' ');
Writeln(Que[tail]);
End.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式