• 大小: 13.23MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-16
  • 语言: 其他
  • 标签: 父子打牌  

资源简介

完整包括论文,答辩ppt,代码等 问题描述: 一对父子喜欢打牌,他们想出了一种玩法。假设他们分别有 n 张牌,每张牌有一个战力 值,他们知道自己和对手每张牌的战力。两人进行 n 次较量,每次较量双方各出一张牌,每 张牌限比一次。儿子通过某种手段已经预先打探到了父亲的出牌顺序。 比赛规则:任意一方出的牌的战力值高于另一方,则出的牌战力值高的一方获胜。其中 胜者可以从对方手中得到¥200,输者必须给对方¥200。如果双方出的牌的战力值相同,则 为平局,平局各不付钱。 问儿子要使用怎样的出牌策略,才能使自己赚的钱最多(或者输的钱最少)。 编程任务: 对于给定的儿子和父亲的n张牌的战力,输出进行n场比

资源截图

代码片段和文件信息

#include 
#include
#include

using namespace std;


void sort(int *arrayint size)
{
    int tmp  ;
    for(int i=0;i    {
        for(int j=i+1;j        {
            if(array[i] < array[j])
            {
                tmp = array[j] ;
                array[j] = array[i] ;
                array[i] = tmp ;
            }
        }
    }
}

int compare(deque listAdeque listB)
{
    int counter = 0 ;

    deque::iterator frontListA ;
    deque::iterator lastListA  ;
    deque::iterator frontListB  ;
    deque::iterator lastListB  ;

    while(!listA.empty())
    {
        frontListA = listA.begin() ;
        lastListA = listA.end() ;
        frontListB = listB.begin() ;
        lastListB = listB.end() ;

        if(*frontListB > *frontListA )
        {
            counter++ ;
            listA.pop_front() ;
            listB.pop_front() ;
           // frontListA = listA.erase(frontListA) ;
           // frontListB = listB.erase(frontListB) ;
        }
        else if(*frontListB < *frontListA)
        {
            counter-- ;
            listB.pop_back() ;
            listA.pop_front() ;
            //listB.erase(lastListB) ;
            //listA.erase(frontListA) ;
        }
        else
        {
            if(*lastListB > *lastListA)
            {
                counter++ ;
                listA.pop_back() ;
                listB.pop_back() ;
                //listA.erase(lastListA) ;
                //listB.erase(lastListB) ;
            }
            else if(*lastListB < *lastListB)
            {
                counter-- ;
                listB.pop_back() ;
                listA.pop_front() ;
                //listB.erase(lastListB) ;
                //listA.erase(frontListA) ;
            }
            else
            {
                listA.pop_back() ;
                listB.pop_back() ;
                //listA.erase(lastListA) ;
                //listB.erase(lastListB) ;
            }

        }
    }

    return counter ;
}

int main()
{
    int n ;
    int counter ;
    int *arrA ;
    int *arrB ;
    deque listA ;
    deque listB ;

    while(1)
    {
        cin >> n ;
        if(n <= 0 || n > 1000) break ;
        arrA = (int*)malloc(sizeof(int)*n) ;
        arrB = (int*)malloc(sizeof(int)*n) ;
        for(int i=0;i> arrA[i] ;
        for(int i=0;i> arrB[i] ;

        sort(arrAn) ;
        sort(arrBn) ;

        for(int i=0;i        {
            listA.push_back(arrA[i]) ;
            listB.push_back(arrB[i]) ;
        }
        counter = compare(listAlistB) ;

        cout << counter*200 << endl ;
    }
    return 0;
}






 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-12 21:51  实习\
     文件     1038935  2018-01-11 23:48  实习\cards.exe
     文件        2840  2018-01-11 23:48  实习\main.cpp
     文件       37376  2018-01-12 00:16  实习\实施计划书.doc
     文件    13654528  2018-01-12 21:08  实习\课程答辩.pptx
     文件       93696  2018-01-12 21:49  实习\课程论文.doc

评论

共有 条评论

相关资源