一道Free Pascal题目有52张扑克牌,使它们全部正面朝上.从第2张牌开始,凡是2的倍数位置上的牌翻成正面朝下:接着从第3张牌开始,把凡是3的倍数位置上的牌正面朝上的翻成正面朝下,正面朝下的
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 15:53:23
![一道Free Pascal题目有52张扑克牌,使它们全部正面朝上.从第2张牌开始,凡是2的倍数位置上的牌翻成正面朝下:接着从第3张牌开始,把凡是3的倍数位置上的牌正面朝上的翻成正面朝下,正面朝下的](/uploads/image/z/2591328-48-8.jpg?t=%E4%B8%80%E9%81%93Free+Pascal%E9%A2%98%E7%9B%AE%E6%9C%8952%E5%BC%A0%E6%89%91%E5%85%8B%E7%89%8C%2C%E4%BD%BF%E5%AE%83%E4%BB%AC%E5%85%A8%E9%83%A8%E6%AD%A3%E9%9D%A2%E6%9C%9D%E4%B8%8A.%E4%BB%8E%E7%AC%AC2%E5%BC%A0%E7%89%8C%E5%BC%80%E5%A7%8B%2C%E5%87%A1%E6%98%AF2%E7%9A%84%E5%80%8D%E6%95%B0%E4%BD%8D%E7%BD%AE%E4%B8%8A%E7%9A%84%E7%89%8C%E7%BF%BB%E6%88%90%E6%AD%A3%E9%9D%A2%E6%9C%9D%E4%B8%8B%EF%BC%9A%E6%8E%A5%E7%9D%80%E4%BB%8E%E7%AC%AC3%E5%BC%A0%E7%89%8C%E5%BC%80%E5%A7%8B%2C%E6%8A%8A%E5%87%A1%E6%98%AF3%E7%9A%84%E5%80%8D%E6%95%B0%E4%BD%8D%E7%BD%AE%E4%B8%8A%E7%9A%84%E7%89%8C%E6%AD%A3%E9%9D%A2%E6%9C%9D%E4%B8%8A%E7%9A%84%E7%BF%BB%E6%88%90%E6%AD%A3%E9%9D%A2%E6%9C%9D%E4%B8%8B%2C%E6%AD%A3%E9%9D%A2%E6%9C%9D%E4%B8%8B%E7%9A%84)
一道Free Pascal题目有52张扑克牌,使它们全部正面朝上.从第2张牌开始,凡是2的倍数位置上的牌翻成正面朝下:接着从第3张牌开始,把凡是3的倍数位置上的牌正面朝上的翻成正面朝下,正面朝下的
一道Free Pascal题目
有52张扑克牌,使它们全部正面朝上.从第2张牌开始,凡是2的倍数位置上的牌翻成正面朝下:接着从第3张牌开始,把凡是3的倍数位置上的牌正面朝上的翻成正面朝下,正面朝下的翻成正面朝上:接着从第四张牌开始,把凡是4的倍数位置上的牌按此规律翻转:依此类推,知道第1张要翻的牌是第52张位置.统计最后又几张牌正面朝上,并打印出它们的位置.
一道Free Pascal题目有52张扑克牌,使它们全部正面朝上.从第2张牌开始,凡是2的倍数位置上的牌翻成正面朝下:接着从第3张牌开始,把凡是3的倍数位置上的牌正面朝上的翻成正面朝下,正面朝下的
var
a:array[1..52] of boolean;
i,j,z:longint;
begin
for i:=1 to 52do a[i]:=true; 先假定所有扑克牌都正面朝上.
for i:=2 to 52 do
begin
for j:=i to 52 do 当i升到一定数时,i前的数 mod i 都0 这样可以提高效率.
if j mod i=0 then
begin
if a[j]=true then a[j]:=false else a[j]:=true; 如果正面朝上,则翻成背面;如果背面朝上,则翻成正面.false代表背面.
end;
end;
for i:=1 to 52 do
if a[i]=true then 如果是正面,就进行以下操作.这些就 easy 了.哈
begin
inc(z);write(i,' ');
end;
write ('z=',z);
end.