CCF CSP刷題 二十四點

2021-09-20 06:49:49 字數 1504 閱讀 7069

【題目描述】

定義每個遊戲由4個從1-9的數字和三個四則運算符組成,保證數字運算子將數字兩兩隔開,不存在括號和其他字元,運算順序按照四則運算順序進行。其中加法用符號『+』表示,減法用符號『-』表示,乘法用小寫字母』x』表示,除法用符號』/『表示,在遊戲裡除法為整除,例如2/3=0,3/2=1,4/2=2。

【輸入格式】

從標準輸入讀入資料。

第一行輸入乙個整數n,從第二行開始到第n+1行包含乙個長度為7的字串,為上述的24點遊戲,保證資料格式合法。

【輸出格式】

輸出到標準輸出。

包含n行,對於每個遊戲,如果其結果為24則輸出字串yes,否則輸出字串no。

【輸入樣例1】

109+3+43

5+455

7-9-9+8

56/54

3+5+7+9

11+9-9

19-5/9

8/5+69

67-36

6*4+4/5

【輸出樣例1】

yesno

noyes

yesno

nono

yesyes

**:

#include#includeusing namespace std;

int main()

for (int i = 0; i < n; i++)

char * ch = new char[7];

int * result = new int[n];

int temp = 0;

int a = 0;

int b = 0;

int * num = null;

char * cal = null;

int x = 0;

int y = 0;

for (int i = 0; i < n; i++)

else

cal[y] = ch[j + 1];

y++;

}else if (j == 6)

else

}else if (ch[j + 1] == 'x')

else if (ch[j + 1] == '/')

}x = 0;

result[i] = num[x];

x++;

for (int k = 0; k < y; k++)

else if (cal[k] == '-')

} if (result[i] == 24)

cout << "yes" << endl;

else

cout << "no" << endl;

system("pause");

deletenum;

deletecal;

} return 0;

}bool isnum(char c)

return false;

}

開始只能得50分,改了好久發現,題目中的乘法要用小寫字母『x』…

CCF CSP 201903 2 二十四點

二十四點是一款著名的紙牌遊戲,其遊戲的目標是使用3個加減乘除運算使得4張紙牌上的運算結果為24。定義每乙個遊戲由4個從1 9的數字和3個四則運算符組成,保證四則運算符將數字兩兩隔開,不存在括號和其他字元,運算順序按照四則運算順序進行。其中加分用符號 表示,減法用符號 表示,乘法用小寫字母x表示,除法...

網路流二十四題

開始了我的網路流 24 題之旅,寫在一起到時候方便一起複習哦。其實這並不是真的二十四題,有一些過於水的我就不寫上來了。然後有的 太水了就不寫了。感覺這些題目還是比較基礎的,方法卻值得借鑑!剩餘題目 航空路線問題 火星探險問題以下 題目描述 點此看題 解法 你發現時間是最大的障礙,因為對於不同的時間飛...

CSP練習2 201903 2 二十四點

這個題可以普通的用陣列進行求解,也可以像本文一樣採取中綴轉字尾的方式,然後再進行計算 主要注意的地方是 題目中的乘法用的是字母x,因為這個原因改了乙個晚上 不知道這樣設定為什麼。主要 如下 include include using namespace std int transform char ...