【計(jì)算機(jī)本科補(bǔ)全計(jì)劃】CCF計(jì)算機(jī)職業(yè)資格認(rèn)證 2016-09 試題詳解

正文之前

我要東山再起了!!沒錯(cuò)CCF迫在眉睫(其實(shí)是我以為報(bào)名之后一個(gè)月才考,結(jié)果報(bào)名截止之后一周就考試!(╯‵□′)╯︵┻━┻!??!還能好好做朋友嗎?。。┧越裉旎鸺被鹆堑木烷_始寫題目了!結(jié)果,二十分鐘寫出第一題,40分鐘寫第二題結(jié)果大錯(cuò)特錯(cuò),數(shù)組全他么越界了!煩躁! 不就是一陣子沒用C++了。怎么我現(xiàn)在這么菜?。???????!!

正文

1、201609-1

試題編號: 201609-1
試題名稱: 最大波動(dòng)
時(shí)間限制: 1.0s
內(nèi)存限制: 256.0MB
  • 問題描述
      小明正在利用股票的波動(dòng)程度來研究股票。小明拿到了一只股票每天收盤時(shí)的價(jià)格,他想知道,這只股票連續(xù)幾天的最大波動(dòng)值是多少,即在這幾天中某天收盤價(jià)格與前一天收盤價(jià)格之差的絕對值最大是多少。

  • 輸入格式
      輸入的第一行包含了一個(gè)整數(shù)n,表示小明拿到的收盤價(jià)格的連續(xù)天數(shù)。
      第二行包含n個(gè)正整數(shù),依次表示每天的收盤價(jià)格。

  • 輸出格式
      輸出一個(gè)整數(shù),表示這只股票這n天中的最大波動(dòng)值。

  • 樣例輸入
    6
    2 5 5 7 3 5

  • 樣例輸出
    4

  • 樣例說明

    • 第四天和第五天之間的波動(dòng)最大,波動(dòng)值為|3-7|=4。
      評測用例規(guī)模與約定
    • 對于所有評測用例,2 ≤ n ≤ 1000。股票每一天的價(jià)格為1到10000之間的整

我的代碼展示:

#include <iostream>
#include <vector>
using namespace std;

int abs(int x)
{
    if(x<0)
        x=-x;
    return x;
}


int main()
{   
    int num;
    cin>>num;
    int x=1,wave=0;
    int pre=0,p=0;
    cin>>pre;
    while(x<num-1)
    {
        cin>>p;
        if(wave<abs(p-pre))
            wave=abs(p-pre);
        pre=p;
        ++x;
    }
    cout<<wave<<endl;

    return 0;
}

運(yùn)行結(jié)果:

Last login: Mon Nov 27 19:39:57 on ttys000
HustWolf:~ zhangzhaobo$ /Users/zhangzhaobo/program/C++/CCF_2016_09_1 ; exit;
6
2 5 5 7 3 5
4
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[進(jìn)程已完成]

2、 201609-2

試題編號: 201609-2
試題名稱: 火車購票
時(shí)間限制: 1.0s
內(nèi)存限制: 256.0MB
  • 問題描述
      請實(shí)現(xiàn)一個(gè)鐵路購票系統(tǒng)的簡單座位分配算法,來處理一節(jié)車廂的座位分配。
      假設(shè)一節(jié)車廂有20排、每一排5個(gè)座位。為方便起見,我們用1到100來給所有的座位編號,第一排是1到5號,第二排是6到10號,依次類推,第20排是96到100號。
      購票時(shí),一個(gè)人可能購一張或多張票,最多不超過5張。如果這幾張票可以安排在同一排編號相鄰的座位,則應(yīng)該安排在編號最小的相鄰座位。否則應(yīng)該安排在編號最小的幾個(gè)空座位中(不考慮是否相鄰)。
      假設(shè)初始時(shí)車票全部未被購買,現(xiàn)在給了一些購票指令,請你處理這些指令。

  • 輸入格式
      輸入的第一行包含一個(gè)整數(shù)n,表示購票指令的數(shù)量。
      第二行包含n個(gè)整數(shù),每個(gè)整數(shù)p在1到5之間,表示要購入的票數(shù),相鄰的兩個(gè)數(shù)之間使用一個(gè)空格分隔。

  • 輸出格式
      輸出n行,每行對應(yīng)一條指令的處理結(jié)果。
      對于購票指令p,輸出p張車票的編號,按從小到大排序。

  • 樣例輸入
    4
    2 5 4 2

  • 樣例輸出
    1 2
    6 7 8 9 10
    11 12 13 14
    3 4

  • 樣例說明
      1) 購2張票,得到座位1、2。
      2) 購5張票,得到座位6至10。
      3) 購4張票,得到座位11至14。
      4) 購2張票,得到座位3、4。

  • 評測用例規(guī)模與約定
      對于所有評測用例,1 ≤ n ≤ 100,所有購票數(shù)量之和不超過100。

我的答案代碼~~


#include <iostream>
using namespace std;

void BuyTicket(int a[20][5],int Tickets)
{
    int (*p)[5]=a;
    bool flag=false;
    for(int i=0;i<20;++i)
    {
        int *q=*p;
        if(q[5-Tickets]==0)
        {
            for(int z=0;z<5;++z)
            {
                if(q[z]==0 && Tickets!=0)
                {
                    q[z]=1;
                    --Tickets;
                    cout<<5*i+z+1<<" ";
                }
            }
            cout<<endl;
            flag=true;
            break;
        }
        ++p;
    }
    if(!flag)
    {
        int (*m)[5]=a;
        for(int i=0;i<20;++i)
        {
            int *q=*m;
            for(int n=0;n<5;++n)
            {
                if(q[n]==0 && Tickets!=0)
                {
                    q[n]=1;
                    --Tickets;
                    cout<<5*i+n+1<<" ";
                }
            }
        }

    }

    
}


int main()
{
    int num,Tickets;
    int a[20][5];
    for(int i=0;i<20;++i)
        for(int j=0;j<5;++j)
            a[i][j]=0;
    cin>>num;
    for(int i=0;i<num;++i)
    {
        cin>>Tickets;
        cout<<i+1<<" : ";
        BuyTicket(a,Tickets);
    }
    cout<<"\n=============\n\n";
    for(auto p=begin(a);p!=end(a);++p)
    {   
        for(auto q=begin(*p);q!=end(*p);++q)
        {
            if(*q!=0)
                cout<<"* | ";
        }
        cout<<endl;
    }
    return 0;
}

運(yùn)行結(jié)果:

Last login: Mon Nov 27 23:19:39 on ttys000
HustWolf:~ zhangzhaobo$ /Users/zhangzhaobo/program/C++/CCF_2016_09_2 ; exit;
24
1 2 4 5 2 3 4 1 2 4 5 2 3 4 1 2 4 5 2 3 4 1 2 4 5 2 3 4 
1 : 1 
2 : 2 3 
3 : 6 7 8 9 
4 : 11 12 13 14 15 
5 : 4 5 
6 : 16 17 18 
7 : 21 22 23 24 
8 : 10 
9 : 19 20 
10 : 26 27 28 29 
11 : 31 32 33 34 35 
12 : 36 37 
13 : 38 39 40 
14 : 41 42 43 44 
15 : 25 
16 : 46 47 
17 : 51 52 53 54 
18 : 56 57 58 59 60 
19 : 48 49 
20 : 61 62 63 
21 : 66 67 68 69 
22 : 30 
23 : 64 65 
24 : 71 72 73 74 

=============

* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | 
* | * | * | * | 
* | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | 
* | * | * | * | 





logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[進(jìn)程已完成]

善做主張加了點(diǎn)東西,好看了不少,不然就那逼樣,實(shí)在是美觀欠奉??!~~

正文之后

今天先日兩題,待會看看第三題能不能再12點(diǎn)之前做出來,明早還有神奇的有限元課~~ 想想真是讓人絕望啊?。】諝馔蝗槐鋨

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容