演算法競賽入門經典(第二版) 習題

2021-08-08 07:13:15 字數 2192 閱讀 2137

習題2-5

#include 

int main()

if ((10

*n%b)*10 / b >= 5) //確定末位四捨五入的情況

printf("%d", 10

*n/b + 1);

else

printf("%d", 10

*n/b);

}return

0;}

注意:要及時輸出,防止n越界

習題2-6

#include 

void result(int num, int &result_add, int &result_mul)

int main()

return

0;}

注意:1~9加起來真能是45, 1~9乘起來只能是362880

所以我們可以將前面的i, j, k分別分解出來的9位數字相加、相乘。

習題3-2

#include

#include

#define local

char s[110];

const

double d = ;

int main()

else

//是數字

//一直到不是數字為止

sum += d[x-'a']*(n-1);//x在if已經被賦值,-1是因為if裡加了乙個}}

printf("%.3f\n", sum);

}return

0;}

收穫:

1、要用上書上提到的isalpha、isdigit、isprint等函式,不要再自己費了半天勁檢驗是數字還是字母了

2、少糾結自己的錯誤做法,多看看別人正確的思路和做法

我自己的解法啊啊啊

#include 

#include

//#define local

#define maxn 100

int main()

if (y == 48)//y越界(即x達到最後一位)

break;

else

if (47

< y && y < 58 && z > 60 && i+2

< len)

num = y - 48;

else

if (47

< y && y < 58 && 47

< z && z < 58 && i+2

< len)

num = (y - 48)*10 + (z - 48);

else

if (47

< y && y < 58 && i+2 >= len)

num = y - 48;

else

num = 1;

mass += num*atom;

}printf("%.3lf\n", mass);

}return

0;}

收穫:

1、注意邊界判斷!!!

2、注意邊界判斷!!!

3、注意邊界判斷!!!

(謝謝學長的debug,我想努力地追上你的腳步…)

習題3-4

#include 

#include

//#define local

#define maxn 100

char a[maxn];

int main()

}if (!flag) break;

}if (flag)

}if (mask)

else

printf("\n%d\n", answer);

}return

0;}

1、注意輸出格式!

2、相信自己,繼續加油!

**(找到乙個因數處理一次)

int getminperiod(char *inputstring)  

} if (ok)

} }

return

0;

}

《演算法競賽入門經典(第二版)》習題(二)

習題 2 1 水仙花數 輸出100 999中的所有水仙花數。若3位數abc滿足abc a b c 則稱其為水仙花數。例如 153 1 5 3 所以153是水仙花數。include intmain return0 習題 2 2 韓信點兵 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三...

演算法競賽入門經典 (第二版)習題2 6

用 1,2,3 9組成三個數字abc,def,ghi每個數字恰好使用一次,要求 abc def ghi 1 2 3按照 abc def ghi 的格式輸出所有解 每行乙個解。思路 有a,b,c三個變數,先確定a的範圍,最小的數且符合題目規定的數字為123,最大的數字且符合題目規定的數字是987 所以...

《演算法競賽入門經典(第二版)》 隨筆

c語言中整數值用 d輸出,實數 浮點數 用 f輸出。kiss原則 keep it and stupid 獲得程式執行時間 包括鍵盤輸入時間 include printf 執行時間 2f n double clock clocks per sec 輸入個數未知時 while scanf d x 1 對...