主题:这52张牌怎么玩?你能教我吗?(此题已有些眉目了) 回复的都++30分
chenzhong
[专家分:250] 发布于 2005-08-15 17:15:00
有52张扑克牌,使它们全部下面朝上。从第2张牌开始,把凡是2的倍数位置上的牌翻成下面朝下,接着从第3张牌开始,把凡是3的倍数位置上的牌下面朝上的番成下面朝下,正面朝下的翻成正面朝上,接着从第4张牌开始,把凡是4的倍数位置上的牌按此规律翻转。依此类推,直到第2张要翻的牌是第52张牌为止。统计最后有几张牌正面朝上,并打印出它们的位置。
晕!!!越看越晕……[em10]
回复列表 (共7个回复)
沙发
chenzhong [专家分:250] 发布于 2005-08-13 19:40:00
各位高手看看这题对不对!!
program;
var
a:=array[1..52] of integer;
i,k:integer;
begin
for i:=1 to 52 do
k:=1;
a[i]:=1;
if k mod i=0 then
a[i]:=a[i]*-1;
else a[i]:a[i]*1;
k:=k+1;
end;
if a[i]=1 then
writeln(i)
end.
板凳
stuart920106 [专家分:730] 发布于 2005-08-15 20:08:00
恩 还不错 可不可以用回溯呢?
3 楼
chenzhong [专家分:250] 发布于 2005-08-15 21:58:00
麻烦写出来[em12]
4 楼
mo19880630 [专家分:420] 发布于 2005-08-18 12:27:00
用搜索,似乎没有你编的简单。还有J,Q,K算是还是分别算11、12、13???
[em5]
[img]http://www.motorola.com.cn/pda/landing_page/pen.html[/img]
5 楼
FancyMouse [专家分:13680] 发布于 2005-08-18 13:37:00
初始条件没怎么看明白,我就假设一开始正面朝上
分析1~52这些数字2~52的约数个数,如果是奇数则是正面朝下,如果是偶数正面朝上。譬如:
52有因子2,4,13,26,52一共5个,所以正面朝下
6 楼
口口and枕头 [专家分:1550] 发布于 2005-08-18 15:33:00
program;
var
a:=array[1..52] of integer;
i,k:integer;
begin
for i:=1 to 52 do
k:=1;
a[i]:=1;
if k mod i=0 then
a[i]:=a[i]*-1;
{else a[i]:a[i]*1;}//这一句根本没有用,可以不要,留着只会拖运行时间
k:=k+1;
end;
if a[i]=1 then
writeln(i)
end.
7 楼
jerryv16 [专家分:140] 发布于 2006-04-03 17:37:00
我看不懂啊,真的好晕啊!!
[em10]
我来回复