魔术师的纸牌编程算法

Python016

魔术师的纸牌编程算法,第1张

我的理解是第1张是A,然后把第2张放到最后,然后第3张是2,然后把第4张放到最后,第5张放到最后,然后第6张是3,然后把7、8、9张依次放到最后,然后第8张是4……

是这样吧?

按照你说的话,牌由上到下的顺序是(T代表10):A825T3QJ9476K

c语言实现的话用倒推的思想应该会相对比较简单一些,你自己拿13张牌自己倒推着试试看,然后按照自己倒推的思路编程就会容易许多。

具体的代码就不给你编了,实现的时候可能多层循环比较麻烦,一步一步来就会轻松些,最好先画个流程图。

楼主要的是这个?

#include <stdio.h>

main()

{

int arr[53],i,k,j

k=2

for(i=1i<=52i++)

arr[i]=i

for(i=2i<=52i++)

{

for(j=kj<=52j++)

{

if(j%k==0)

{

if(arr[j]==0)

arr[j]=j

else arr[j]=0

}

}

k+=1

}

printf("最后正面向上的纸牌编号为:\n")

for(i=1i<=52i++)

{

if(arr[i]==0)continue

printf("%4d",arr[i])

}

getch()

}

还有发牌程序: