洛谷 P1236 算24點

2021-07-22 16:14:35 字數 1144 閱讀 3003

題目描述

幾十年前全世界就流行一種數字遊戲,至今仍有人樂此不疲.在中國我們把這種遊戲稱為「算24點」。您作為遊戲者將得到4個1~9之間的自然數作為運算元,而您的任務是對這4個運算元進行適當的算術運算,要求運算結果等於24。

您可以使用的運算只有:+,-,,/,您還可以使用()來改變運算順序。注意:所有的中間結果須是整數,所以一些除法運算是不允許的(例如,(2*2)/4是合法的,2(2/4)是不合法的)。下面我們給出乙個遊戲的具體例子:

若給出的4個運算元是:1、2、3、7,則一種可能的解答是1+2+3*7=24。

輸入輸出格式

輸入格式:

只有一行,四個1到9之間的自然數。

輸出格式:

如果有解的話,只要輸出乙個解,輸出的是三行資料,分別表示運算的步驟。其中第一行是輸入的兩個數和乙個運算子和運算後的結果,第二行是第一行的結果和乙個輸入的資料、運算子、運算後的結果,或者是另外兩個數的輸出結果;第三行是前面的結果第二行的結果或者剩下的乙個數字、運算子和「=24」。如果兩個運算元有大小的話則先輸出大的。

如果沒有解則輸出「no answer!」

如果有多重合法解,輸出任意一種即可。

注:所有運算結果均為正整數

輸入輸出樣例

輸入樣例#1:

1 2 3 7

輸出樣例#1:

2+1=3

7*3=21

21+3=24

從所有牌中任選兩張,合併,遞迴,直到只剩一張牌,判斷是否為24即可。

#include

#include

using

namespace

std;

int a[5][11],ans[11][3],ky[11];

bool ***;

char op(int k)

void print(int dep)

int calc(int x,int y,int k)

void dfs(int dep)//現有牌數

return ;

}for(int i=1;i<=dep;i++)//任選兩張牌

for(int j=1;j<=dep;j++)

if(i!=j)

}}int main()

洛谷 P1236 算24點

題目描述 幾十年前全世界就流行一種數字遊戲,至今仍有人樂此不疲 在中國我們把這種遊戲稱為 算24點 您作為遊戲者將得到4個1 9之間的自然數作為運算元,而您的任務是對這4個運算元進行適當的算術運算,要求運算結果等於24。您可以使用的運算只有 您還可以使用 來改變運算順序。注意 所有的中間結果須是整數...

洛谷 P1236 算24點

我對狀態空間的理解 題目傳送門 算 24 點應該是大家耳熟能詳的遊戲了 這題 spj 要求把兩個要運算的數字較大的放在前面輸出 然後爆搜數字順序和運算子就可以了 真 暴力美學 時間複雜度 o 4 4 3 空間複雜度 o n 如下 include include include using names...

洛谷P1236 算24點 搜尋

給出四個整數,求能否經過一系列運算使得這四個數字最終組成24。注意 運算的任意時刻數字均必須為整數。很顯然的搜尋嘛。可以考慮每次列舉使用那兩個數字進行運算,然後再列舉使用哪一種運算方法 加減乘除 把用過的數字修改成 1.最終搜尋完之後判斷有沒有乙個數字變成了24即可。思路還是比較簡單,注意細節即可。...