描述
給你n根火柴棍,你可以拼出多少個形如「a+b=c」的等式?等式中的a、b、c是用火柴棍拼出的整數(若該數非零,則最高位不能是0)。用火柴棍拼數字0-9的拼法如圖所示:
注意:加號與等號各自需要兩根火柴棍
如果a≠b,則a+b=c與b+a=c視為不同的等式(a、b、c>=0)
n根火柴棍必須全部用上
分析:1、利用列舉的方法解決這個問題
2、a和b的列舉範圍在0~1111之間,因為假如a為1,則需要兩個火柴棍,剩下18根(因為加號和等號需要4根)c肯定大於b,所以b最大為1111需要8根火柴
3、寫乙個函式用來計算該數字需要多少根火柴
#include
using
namespace std;
intmain()
}}printf
("%d"
,n);
return0;
}int
sum(
int x)
;while
(x/10!=0
)//如果x/10的商不為0,則x為兩位數
count+
=f[x]
;return count;
}
口袋中有紅,黃,藍,白黑5 中顏色的球若干個,每次從口袋先後取出3個球,共有幾種取法。第一種解法是c語言書上的解法。
宣告列舉型別使用 enum,列舉變數的值和其他數量型的值不同,她們的值僅限於花括號中指定的值。比如:
enum color
;
每乙個列舉元素都代表乙個整數,c語言編譯時按定義時的順序預設它們的值為0,1,2,3,4
故c=red與c=0一樣
#include
intmain()
;enum color i,j,k,pri;
int n,loop;
n=0;for
(i=red;i<=black;i++
)for
(j=red;j<=black;j++
)switch
(pri)}}
}}}}
#include
using
namespace std;
intmain()
printf
("總共%d種"
,num)
;return0;
}int fun (
int x)
}
列舉例題練習
注意怎麼盡可能減少列舉的個數和範圍 例題一 生理週期 解題思路 這題還是比較簡單的,很容易就可以想到用列舉的方式解題,條件其實就是列舉每一天,看看距離所給高峰的距離能不能同時 23 28 33 0就好了。但是如果這樣設計的話很明顯就要用3重迴圈時間複雜度很高,如果給的資料很大的話很有可能會溢位,所以...
map的簡單例題
a let the balloon rise 題意 輸入n種顏色,輸出出現最多次數的顏色。思路 建立乙個以顏色為key,出現次數為value的map,每次輸入一種顏色都給對應的value加1。注意map的初始化。include using namespace std int n string st ...
簡單的列舉
補一下從前的做題記錄。某天一口氣水了三道簡單的列舉 這三道題的核心思想就是列舉,通過暴力的列舉所有情況來結局題目。總體來說比較不費腦,只需要列舉所有情況就可以了,但是在列舉的 方法上,要注意方法的優化,不然可能會超時的。第一題 uva725 7.1 division 這個題的意思是說輸入正整數n,按...