张君团伙:pascal编程多重循环解题练习

来源:百度文库 编辑:高考问答 时间:2024/04/29 04:19:40
1、(选做)有N盏灯放在一排,从1到N依次编号,有N个人也从1到N依次编号,第一个人将灯全部打开,第二个人将凡是2的倍数的灯全部关闭,第三个人将凡是3的倍数的灯作相反处理,第4、5、……、N个人都把自己编号的倍数的灯作相反处理。问第N个人走过后,哪些灯是开着的?

2、将一张面值100元的纸币换成若干张面值为1元,2元和5元的纸币,共有多少种换法?要求输出每一种换法。

3、A、B两个自然数的和、差、积、商四个数加起来等于243,求A、B两数。

4、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数,例如:13。试找出所有二位绝对素数。

要是三个人分的时候把平均分成分三份,而且分完时多余的糖果马上吃掉,那这个问题就很好解决了:
首先甲把50颗分成三份,每份16颗,余2颗吃掉,分两份给其他两个人,此时甲有16颗,乙有43+16=59颗,丙有13+16=29颗
然后乙把59颗分成三份,每份19颗,余2颗吃掉,分两份给其他两个人,此时乙有19颗,甲有16+19=35颗,丙有29+19=48颗
最后丙把48颗分成三份,每份16颗,余0颗吃掉,分两份给其他两个人,此时丙有16颗,甲有35+16=51颗,乙有19+16=35颗
要是还要继续分下去,只要用循环就行了

第二题:
var x,y,z:longint;
begin
for x:=1 to 20 do
for y:=1 to 100 do
for z:=1 to 100 do
if (x+y+z=100) and (5*x+1*y+0.5*x=100) then
writeln(x,' ',y,' ',z);
end.