1. 程式人生 > >演算法競賽入門經典學習筆記

演算法競賽入門經典學習筆記

作為一名剛接觸cs專業的萌新小白,開始學習蕊蕊大佬推薦的《演算法競賽入門經典》一書,一邊學習一遍記錄一些自己覺得很有用的小知識,作為自己平凡之路的一部分,日常慢慢更。emmmm

1.定義π的新姿勢:

const double pi=acos(-1.0)

2.判斷一個數的平方根是否為整數:
int m=floor(sqrt(n)+0.5);
if(m*m==n) printf("%d\n",n);

由於誤差的影響,整數1可能會變成0.9999999999,floor的結果可能會是0而不是1,為了減小誤差的影響,一般改為四捨五入。

3.一般要求輸出的行首行尾均無空格,相鄰兩個資料間用單個空格隔開:

例如總共要輸出n個整數,但只有n-1個空格,所以只好分兩條語句輸出。如:

for(int i=n-1;i>=1;i--)
printf("%d",a[i]);
printf("%d\n",a[0]);

另一種方法是設定一個標誌變數first,用來判斷當前要輸出的變數是否為第一個:

int first=0;
for(int i=1;i<=n;i++)
 {
     if(first) first=0;
      else printf(" ");
      printf("%d",i);
 }

4.在當前流行的競賽平臺中,int都是32位整數,範圍是-2147483648~2147483647.

5.如果想輸出025這樣的數:

printf("%03d",25);

6.輸出轉義字元:

printf("\\n");