注册 登录
编程论坛 数据结构与算法

! 纸牌游戏 ! 谁帮我分析下思路。?

bqgq 发布于 2010-01-20 13:55, 1371 次点击
碰到这题,感觉无从下手哎。

   编号为1-n张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…...再依次4的,5的,6的直到以52为基数的翻过.


要求输出所有正面向上的牌.
4 回复
#2
bqgq2010-01-20 22:27
  如果说, 翻一次,用当前数%基数==0来标记, 那不是要一直比到52 ?  
 
     用得着写那么长,?
#3
hui_302010-01-21 11:05
不用写这么长,你可以试着用递归做!
#4
heartnheart2010-01-22 13:04
你可以用数组啊,例如声明一个53的数组,然后统计每个元素索引是2到它本身多少个数的倍数,再输出个数为2的倍数的元素索引不就行了
#5
韦春敢2010-01-29 18:05
用C语言写了,给大家看看
#include<stdio.h>
void main()
{int i,j,card[100],n;
printf("please enter the cards:");
scanf("%d",&n);
/*初始化数据组*/
for(i=1;i<=n;i++)
card[i]=-1;
for(i=2;i<=n;i++)
for(j=i;j<=n;j++)
if(0==j%i)
card[i]=card[i]*(-1);/*翻牌*/
/*数牌*/
for(j=0,i=1;i<=n;i++)
if(card[i]==1)
j++;
printf("%d",j);
}
1