組合表示式

2021-08-21 20:31:37 字數 835 閱讀 3021

請考慮乙個被空格分隔的,由1到n的整數組成的遞增數列:1 2 3 ... n。現在請在數列中插入表示加的「+」,或者表示減「-」,亦或者表示空白的「 」(例如1-2 3就等於1-23),來將每一對數字組合成乙個表示式(第乙個數字前無空格)。計算該表示式的結果並判斷其值是否為0。請你寫乙個程式找出所有產生和為零的長度為n的數列。

輸入為一行,包含乙個整數n(3≤n≤9)。

輸出為所有在每對數字間插入「+」, 「-」, 或 「 」後能得到和為零的數列,並按照字典(ascii碼)序排列。

樣例輸入

7
樣例輸出

1+2-3+4-5-6+7

1+2-3-4+5+6-7

1-2 3+4+5+6+7

1-2 3-4 5+6 7

1-2+3+4-5+6-7

1-2-3-4-5+6+7

題解:題目要求,從1到n,兩個數字之間置入+或-或空格,是否能使表示式結果為0;

用深搜加列舉的方式,推算出所有可能,並輸出結果;

注意,題目要求在輸出的時候是按照ascii碼排好序的,在其中空格<+<-,所以,在列舉的時候只要按照這個順序列舉,則結果就已經排好序了;

#includeusing namespace std;

int s[10][2],n;

int judge()

,k=1,sum=0;

a[0]=1;

for(int i=1; i0)

else}}

for(int i=0; i>n;

kill(1);

}

計蒜客 組合表示式

請考慮乙個被空格分隔的,由1到n的整數組成的遞增數列 1 2 3 n。現在請在數列中插入表示加的 或者表示減 亦或者表示空白的 例如1 2 3就等於1 23 來將每一對數字組合成乙個表示式 第乙個數字前無空格 計算該表示式的結果並判斷其值是否為0。請你寫乙個程式找出所有產生和為零的長度為n的數列。輸...

計蒜客 組合表示式

請考慮乙個被空格分隔的,由1到n的整數組成的遞增數列 1 2 3 n。現在請在數列中插入表示加的 或者表示減 亦或者表示空白的 例如1 2 3就等於1 23 來將每一對數字組合成乙個表示式 第乙個數字前無空格 計算該表示式的結果並判斷其值是否為0。請你寫乙個程式找出所有產生和為零的長度為n的數列。輸...

表示式 表示式樹 表示式求值

總時間限制 1000ms 記憶體限制 65535kb 描述 眾所周知,任何乙個表示式,都可以用一棵表示式樹來表示。例如,表示式a b c,可以表示為如下的表示式樹 a b c 現在,給你乙個中綴表示式,這個中綴表示式用變數來表示 不含數字 請你將這個中綴表示式用表示式二叉樹的形式輸出出來。輸入輸入分...