<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

本文涉及的产品
转发路由器TR,750小时连接 100GB跨地域
简介: 纸牌游戏:游戏的规则 是这样的:将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌。
  • 纸牌游戏:游戏的规则 是这样的:将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意一人 手中的牌全部出完时,游戏结束,对手获胜。
  • 假如游戏开始时,小哼手中有 6张牌,顺序为 2 4 1 2 5 6,小哈手中也有 6张牌,顺序 为 3 1 3 5 6 4,终谁会获胜呢?
  • 这恰好对应队列的两个操作,出牌就是出队,赢牌就是入队。小哈的操作和小哼是一样的。而桌子就是一个栈,每打出一张牌放到桌上就相当于入栈。当有人赢牌的时候,依次将牌从桌上拿走,这就相当于出栈。那如何解决赢牌的问题呢?赢牌的规则是:如果某人打出的牌与桌上的某张牌相同,即可将两张牌以及中间所夹的牌全部取走。
  • 代码:
 #include<iostream>
 #include<cstring>
 #include<stdio.h>
using namespace std;
struct queue{
    int data[1000];
    int head;
    int tail;
};
struct stack{
    int data[100];
    int top;
};
int main(){
    struct queue q1,q2;
    struct stack s;
    q1.head=1,q1.tail=1;
    q2.head=1,q2.tail=1;
    s.top=0;
    int t;
    for(int i=1;i<=6;i++){
        cin>>q1.data[q1.tail];
        q1.tail++;
    }
    for(int i=1;i<=6;i++){
        cin>>q2.data[q2.tail];
        q2.tail++;
    }
    int book[12];
    for(int i=0;i<=9;i++){
        book[i]=0;
    }
    while(q1.head<q1.tail&&q2.head<q2.tail){
         t=q1.data[q1.head];
        if(book[t]==0){
            q1.head++;
            s.top++;
            s.data[s.top]=t;
            book[t]=1;
        }
        else{
            q1.head++;
            q1.data[q1.tail]=t;
            q1.tail++;
            while(s.data[s.top]!=t){
                q1.data[q1.tail]=s.data[s.top];
                book[s.data[s.top]]=0;
                s.top--;
                q1.tail++;
            }
        }
        t=q2.data[q2.head];
        if(book[t]==0){
            q2.head++;
            s.top++;
            s.data[s.top]=t;
            book[t]=1;
        }else{
           q2.head++;
           q2.data[q2.tail]=t;
           q2.tail++;
           while(s.data[s.top]!=t){
                book[s.data[s.top]]=0;
                q2.data[q2.tail]=s.data[s.top];
                q2.tail++;
                  s.top--;
           }
        }
        }
      if(q2.head==q2.tail){
        cout<<"小哼win\n"<<endl;
        cout<<"小哼当前的牌是"<<endl;
        for(int i=q1.head;i <=q1.tail-1;i++){
            cout<<" "<<q1.data[i];
        }
        if(s.top>0){
            cout<<"\n 桌上的牌是"<<endl;
            for(int i=1;i<=s.top;i++){
                cout<<" "<<s.data[i];
            }
        }else
        cout<<"桌子上没牌啦!"<<endl;
    }else{
        cout<<"小哈win\n"<<endl;
            cout<<"小哈当前的牌是"<<endl;
            for(int i=q2.head;i<=q2.tail-1;i++){
                cout<<" "<<q2.data[i];
            }
            if(s.top>0){
                cout<<"\n 桌上的牌是"<<endl;
                for(int i=1;i<=s.top;i++){
                    cout<<" "<<s.data[i];
                }
            }else
            cout<<"桌子上没牌啦!"<<endl;
    }
    return 0;
}
目录
相关文章
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
最近在线上往hbase导数据,因为hbase写入能力比较强,没有太在意写的问题。让业务方进行历史数据的导入操作,中间发现一个问题,写入速度太快,并且业务数据集中到其中一个region,这个region无法split掉,处于不可用状态。
1338 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Every Programmer Should Know These Latency Numbers 1秒=1000毫秒(ms) 1秒=1,000,000 微秒(μs) 1秒=1,000,000,000 纳秒(ns) 1秒=1,000,000,000,000 皮秒(ps) L1 cache reference .
647 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
hadoop服务器更换硬盘操作步骤(datanode hadoop目录${HADOOP_HOME}/bin    日志位置:/var/log/hadoop)1.登陆服务器,切换到mapred用户,执行jps命令,查看是否有TaskTracker进程。
1010 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
从hadoop移除机器把需要移除的机器增加到exclueds文件中,强制刷新datanode列表,等待decommission 状态正常后,即可停机下架,如有必要在namenode执行balancer操作。
680 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
 Connection reset by peer的常见原因: 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;    如果知道实际连接服务器的并发客户数没有超过服务器的承载量,看下有没有网络流量异常。
857 0
|
Web App开发 存储 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
NoSuchObjectException(message:There is no database named cloudera_manager_metastore_canary_test_db_hive_hivemetastore_df61080e04cd7eb36c4336f71b5a8bc4) at org.
1079 0
|
Web App开发 前端开发 数据库
|
SQL Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
     如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
777 0
|
Web App开发 前端开发 关系型数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
mysql修改表、字段、库的字符集 修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE .
708 0
|
Web App开发 前端开发 关系型数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
如果mysql正在运行,/etc/init.d/mysqld stop 启动mysql(无需输入密码):bin/safe_mysqld –skip-grant-tables & 在bin目录下执行mysql,此时无需输入密...
804 0
下一篇
无影云桌面