題目描述
幾十年前全世界就流行一種數字遊戲,至今仍有人樂此不疲.在中國我們把這種遊戲稱為「算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即可。思路還是比較簡單,注意細節即可。...