蒜頭的數學實在是太差了,於是老師把他關到小黑屋讓他閉門修煉。老師跟他一張紙,上面一排寫著1, 2, 3…n這n個數,中間用空白分隔。老師讓他在空白處填上加號或者減號。他讓蒜頭君求出一共有多少種加運算子的方法使得整個表示式的值為0,並輸出所有的方案。比如n=7時,1 2 3 4 5 6 7排成一排,一種插入符號的方案為1+2-3+4-5-6+7=0。是不是很有趣,快來幫蒜頭君解出這題吧(*′▽`)??
輸入為一行,包含乙個整數n(3≤n≤9)。
輸出為所有在每對數字間插入「+」或「-」後能得到和為零的數列,並按照字典(ascii碼)序排列。如果無解就輸出一行none。
不知道字典序和ascii也不要緊,我們看樣例輸出就清楚啦,1到n排成一排,先每個位置優先放」+」,再放」-「,這麼放的原因是因為」+」的ascii碼要比」-「小。
這是窮舉與搜尋基礎一節的作業題,
#include#include using namespace std;
bool op[11];//true+ false-
int n;
bool found = false;
void dfs(int index, bool a)else
}if(sum==0)
printf("%d\n",n);
}}else
return;
}int main()
return 0;
}
計蒜客 蒜頭君學英語
蒜頭君快要考托福了,這幾天,蒜頭君每天早上都起來記英語單詞。花椰妹時不時地來考一考蒜頭君 花椰妹會詢問蒜頭君乙個單詞,如果蒜頭君背過這個單詞,蒜頭君會告訴花椰妹這個單詞的意思,不然蒜頭君會跟花椰妹說還沒有背過。單詞是由連續的大寫或者小寫字母組成。注意單詞中字母大小寫是等價的。比如you和you是乙個...
蒜頭君學英語 計蒜客
蒜頭君快要考托福了,這幾天,蒜頭君每天早上都起來記英語單詞。花椰妹時不時地來考一考蒜頭君 花椰妹會詢問蒜頭君乙個單詞,如果蒜頭君背過這個單詞,蒜頭君會告訴花椰妹這個單詞的意思,不然蒜頭君會跟花椰妹說還沒有背過。單詞是由連續的大寫或者小寫字母組成。注意單詞中字母大小寫是等價的。比如you和you是乙個...
演算法學習 dfs篇 蒜頭學算數
include using namespace std int n 儲存讀入的整數n bool opr 10 可以用乙個bool陣列儲存所有n 1個符號,我們用true表示加號 用false表示減號 bool found false 表示是否找到一組解,如果沒找到的話需要在最後輸出 none dfs...