turbo Pascal的问题!用For循环!!!

来源:百度知道 编辑:UC知道 时间:2024/06/04 18:08:16
1、输出下列图形
1
222
33333
2、百元百鸡问题:要求100元买100只鸡。其中公鸡每只5元,母鸡每只3元,小鸡两只1元,输出每种买法。
3、 1元钱换1分、2分、5分的硬币(每种至少1枚),问有多少种兑换方法。
4、 输出2——n之间的所有素数(质数)。
5、 编程计算当我国人口增长率分别为3%、2.5%、2%、1.5%、1%、0.5%时,从1982年算起多少年会达到或超过12亿人口(1982年人口数为10亿3千万)

1.
begin
writeln(1:3);
writeln(222:4);
writeln(33333);
end.

时间有限,我简要说一下:
1:这类题目要仔细观察,数清楚数字的大小、数量、之前的空格数量与行数的关系,学编程这点数学功底肯定要的,建立好了通向公式就很简单了,第一个for来解决行数,第二个for解决输出空格和具体数字的问题
2:这题其实最简单不过,用两个for穷举公鸡和母鸡的情况,然后通过总价计算出小鸡的数量,然后用if判断鸡数总和是否为100即可,成立就输出
3:这题也和上面一题的道理差不多,建议穷举5分和2分,以免除不尽
4:由于是比较基础的题目,给你的n应该不会太大,所以不用高精度也可以做,只要判断每个数是否能被2到自身-1整除即可
5:剩下时间不足了.....

1.var i:integer;
begin
for i:=1 to 7 do write(' ');
writeln(1);
write(' ');
for i:=1 to 3 do write(2);
writeln;
for i:=1 to 5 do write(3);
end.

2.var i,j,k:integer;
begin
for i:=0 to 20 do
for j:=0 to 33 do
for k:=0 to 100 do
if i*5+j*3+k=100 then writeln(i,' ',j,' ',k);
end.

3.var i,j,k:integer;
begin
for i:=1 to 20 do
for j:=1 to 50 do
for k:=1 to 100 do
if i*5+j*2+k=100