• 魔术师的猜牌术


    魔术师再次表演,他将红桃和黑桃全部迭在一起,牌面朝下放在手中,对观众说:最上面一张是黑桃A,翻开后放在桌上。以后,从上至下每数两张全依次放在最底下,第三张给观众看,便是黑桃2,放在桌上后再数两张依次放在最底下,第三张给观众看,是黑桃3。如此下去,观众看到放在桌子上牌的顺序是:
    黑桃 A 2 3 4 5 6 7 8 9 10 J QK
    红桃 A 2 3 4 5 6 7 8 9 10 J QK
    问魔术师手中牌的原始顺序是什么?

    分析:
      原始牌看成一个圈,圈上有26个空位,已知第一个是b1,然后按一定顺序,往后数空位,第三个空位就是下一张牌,牌点数依次增加·,判断前13还是后13,输出时直接输出。

    代码:

      

    #include<iostream>
    
    using namespace std;
    int main(){
        int a[26]={0},num = 1,time = 2;//time表示目前出现过几次空
        for(int i = 0 ;i < 26;i++){
            if(a[i] == 0){
                if(time == 2){
                    a[i] = num;
                    time = 0;
                    num++;
                }else{
                    time++;
                }
            }
            if(num <= 26 && i >= 25){
                i = 0;//形成环形,未填满就继续填
            }
        }
        for(int i = 0;i < 26;i++){
       //     cout << a[i] << endl;
            if(a[i] > 13){
                if(a[i] == 26)
                    cout << "r13" << endl;
                else
                    cout << "r" << a[i] % 13 << endl;
            }else{
                cout << "b" << a[i] << endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习) 转 武胜
    探讨C语言中的回调函数
    BusyBox
    ISC的DHCP服务器
    exchange 2007 安装
    strcpy和memcpy的区别 | strcpy和strncpy的区别
    爱不是什么
    编译libnl时候的问题
    Linux中find常见用法示例
    ubuntu firefox flash 插件安装
  • 原文地址:https://www.cnblogs.com/gudygudy/p/10472291.html
Copyright © 2020-2023  润新知