列舉的簡單例題

2021-10-04 04:51:37 字數 1376 閱讀 9528

描述

給你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,按...