白書若干題

2021-09-06 08:44:56 字數 1821 閱讀 9572

1. p32(排列) 

用1、2、3、…、9組成3個三位數abc,def和ghi,每個數字恰好使用一次,要求abc:def:ghi=1:2:3。輸出所有解。

int

i,j,k;

for(i=123; i<=987/3; i++)

next_permutation等全部重拍,然後判斷是否滿足比例關係。

2. p50(乘積的末三位)

如題:輸入若干個整數(可以是正數、負數或者零),輸出它們的乘積的末三位。這些整數中會混入一些由大些字母組成的字串,你的程式應當忽略他們。

下面的我寫的,沒有處理正負號。

1 #include 2 #include 

3 #include 4

using

namespace

std;56

int solve(char *str)

7else

1726}27

return res%1000;28

}2930int

main()

3140 cout

41//

while(1);

42return0;

43 }

3. p50(計算器)

編寫程式,讀入一行恰好包含乙個加號、減號或乘號的表示式,輸出它的值。這個運算子保證是二元運算子,且兩個運算數均為不超過100的非負整數。運算數和運算子可以緊挨著,也可以用乙個或多個空格、tab隔開。行首末尾均可以有空格。

1

//實際上可以直接用一般方法,掃瞄 2//

錯誤 3 #include 4 #include 5 #include 6 #include 7

using

namespace

std;89

intmain()

10

1 #include 2

using

namespace

std;34

intmain()

5while(!('

+' == oper || '

-' == oper || '

*' ==oper) );

14 cin >>b;

15if('

+' ==oper)

18else

if('

-' ==oper)

21else

24return0;

25 }

4. p50(手機鍵盤)

採用二維陣列或者一維陣列,採用一位陣列的話儲存第乙個字母 。

5. p67(解方程組)

編寫乙個 函式solve,給定浮點數a, b, c, d, e, f,求解方程組af + by = c, dx + ey = f。

任務1:使用assert巨集,讓解不唯一時異常退出。  

assert(b*d!=a*e);
任務2:解不唯一時仍然正常返回,但呼叫者有辦法知道解的數量(無解、唯一解、無窮多組解)。

1 #include2  #include3

using

namespace

std;45

double

x, y;

6int solve(double a, double b, double c, double d, double e, doublef)7

14int

main()

1525

return0;

26 }

6.

白書幾何模板

白書幾何模板 const double eps 1e 10 struct point typedef point vector 向量就是點的表示 vector operator vector a,vector b vector operator vector a,vector b vector op...

劃分數 白書

1 include 2 include 3 4using namespace std 5 有關計數問題的dp6 有n個無區別的物品,劃分成不超過m組,求方法數取模m的餘數78 const int max n 1000 2 9 const int max m 1000 2 10 const int m...

白書16 12凸包

安德魯演算法 安德魯演算法判斷凸包需要用到叉積 關於叉積 首先在二維座標下介紹一些定義 點 a x1,y1 b x2,y2 向量 向量ab x2 x1 y2 y1 x y 向量的模 ab sqrt x x y y 向量的點積 結果為 x1 x2 y1 y2。點積的結果是乙個數值。點積的集合意義 我們...