小sugar呀 入門 記錄

2021-07-11 03:26:12 字數 2974 閱讀 9806

第一章——程式入門

1.在演算法競賽中不要使用標頭檔案 conio.h,包括getch()、clrscr()等函式

2.盡量用const關鍵字宣告常數

3.kiss——keep it ****** and stupid.演算法競賽是在比誰能更好的解決問題,而不是在比誰寫的程式看上去更高階,應該盡量保持簡單,而不是創造條件為了展示自己的程式設計技巧。

4.c語言中的邏輯運算子都是短路運算子。一旦能夠確定整個表示式的值,就不再繼續進行計算。

5.適當在程式中編寫注釋不僅能讓其他使用者更快地搞懂你的程式,還能幫你自己理清思路。

6.當呼叫正余弦函式的時候要注意,要對輸入的資料進行處理,n*pi/180。

第二章——迴圈結構程式設計

1.分析所給問題→偽**→程式。改寫偽**的時候一般先選擇較容易的部分。

2.當需要統計某種事物的個數時,可以用乙個變數來充當計數器。

3.在觀察無法找出錯誤的時候,可以用「輸出中間結果」的方法差錯。

4.可以包含time.h標頭檔案,並使用printf("time used =%f\n",(double)clock() / clocks_per_sec)來計時。

在程式結束前呼叫此函式可以獲得整個程式的執行時間。不要直接使用clock()的返回值,而應除以 clocks_per_sec。

5.在比賽之前了解檔案讀寫的相關規定,標準輸入輸出(也稱標準i/o,即直接讀鍵盤、寫螢幕),還是檔案輸入輸出?如果是檔案輸入輸出,是否禁止用重定向方式訪問檔案?

6.詳細閱讀比賽規定,並嚴格遵守。不要弄錯大小寫,不要拼寫錯檔名,不要使用絕對路徑或相對路徑。

7.注釋的好處是,一旦需要時,把注釋符去掉即可。

8.在演算法競賽中,有經驗的選手往往會使用條件編譯指令並且將重要的測試語句注釋掉而非刪除。

9.條件編譯:對其中一部分內容只有在條件滿足時才進行編譯,也就是對一部分內容制定編譯條件。

10.在演算法競賽中,如果不允許使用重定向方式讀寫資料,應使用fopen和fscanf/fprintf進行輸入輸出。

11.在多組資料的題目中,乙個常見的錯誤是:在計算完一組資料後某些變數沒有重置,影響到嚇阻資料的求解。

12.當巢狀的兩個**塊中有同名變數時,內層的變數會遮蔽外層變數,有事會引起十分隱蔽的錯誤。

13.用編譯選項-wall編譯程式時,會給出很多(但不是所有)警告資訊,以幫助程式設計師改正錯誤。但有些是合法的。

——————————————————————————————————————分割線—————————————————————————————————

韓信點兵(hanxin):韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵以三人一排、五人一排、七人一排地變換隊形,而他每次只要掠一眼隊伍的排尾就知道總人數了。輸入包括多組資料,每組資料報含三個非負整數a,b,c,表示每種隊形的排尾人數(a<3,b<5,c<7),輸出總人數的最小值(或報告無解)。一直總人數不小於10,不超過100.輸入到檔案結束為止。

樣例輸入:

2 1 6

2 1 3

樣例輸出:

case 1: 41

case 2:no answer

#include

#include

int main()

int ans;

int a,b,c;

int kcase=0;

while(scanf("%d%d%d",&a,&b,&c)!=eof)

ans=a*70+b*21+c*15;  /*三人同行七十稀, 五樹梅花廿一枝, 七子團圓正半月*/

while(ans>105)

ans=ans-105;      /*除百零五便得知*/

if(ans<10||ans>100) printf("case %d: noanswer\n",++kcase);

else printf("case %d: %d\n",++kcase,ans);

return 0;

這類題目看起來是很難計算的,可是我國古時候卻流傳著一種演算法,名稱也很多,宋朝周密叫它「鬼谷算」,又名「隔牆算」;楊輝叫它「剪管術」;而比較通行的名稱是「韓信點兵」。最初記述這類演算法的是一本名叫《孫子算經》的書,後來在宋朝經過數學家秦九韶的推廣,又發現了一種演算法,叫做「大衍求一術」。這在數學史上是極有名的問題,外國人一般把它稱為「中國剩餘定理」。至於它的演算法,在《孫子算經》上就已經有了說明,而且後來還流傳著這麼一道歌訣:

三人同行七十稀,五樹梅花廿一枝,七子團圓正半月,除百零五便得知。

分數化小數(decimal)

輸入正整數a,b,c,輸出a/b的小數形式,精確到小數點後c位。a、b≤10^6,c≤100.

輸入包含多組資料,結束標誌為a=b=c=0.

樣例輸入:

1 6 4

0 0 0

樣例輸出:

case 1: 0.1667

——————————————————————————寫到這裡不會寫了,我先學了大數運算之後再寫吧—————————————————————————————

——————————————————————————---------------------終於學會啦———————————————————————————————————————

#include

#include

#include

#include

#define maxn 100+10

int v[maxn];

int main()

if(v[c+1]>=5) v[c]+=1;

printf("%d.",v[0]);

for(i=1; i<=c; i++)

printf("%d",v[i]);

printf("\n");

}return 0;

}排列(permutation)

#include

#include

#include

#include

int main()

return 0;

}

小橙子新手出道學異常呀

異常是用try except 塊處理的,它讓python執行指定操作,同時告訴python發生異常應該怎麼辦 使用了try except 塊時,即便出現異常,程式也將繼續執行 顯示出你編寫的友好的錯誤資訊,而不是令使用者迷惑的traceback。處理zerodivisionerror異常 print...

微信小程式小白前端入門學習記錄 友鄰小程式(三)

頁面的wxml 為 src template pageheader pageheader.wxml class container pageheader data template class test header src images edit header.png image class fo...

android 入門記錄

目前無法解決的問題 1.非gradle專案匯入 2.jar aar匯入 android studio 匯入乙個已有的android studio project作為lib使用 新專案來了。需要搭建框架。android studio對我來說還是很陌生,之前乙個專案在同事的幫助下搭建了環境,完全蒙查查,...