有任何錯誤歡迎糾正 我好懶
所附程式只是我目前能力認為最簡易且可讀性最佳的
會顯示Subtask詳解,想自己解的自行注意
梁哲豪 dc:flightz#0378
- 競賽程式導論
最近很忙,忘記更新sor
%2
來判斷奇數偶數 進階寫法
100or400
了嗎?? 這是斜咖做法,你們絕對想的到更好的方法
while
迴圈, 在輸入為0時結束程式 註:有更簡單,更好的做法,之後應該會教,帶這是用來練習while
的
從最前面跟最後面開始
判斷是不是一樣
之後往中間縮
可以看看一個函式叫做reverse()
就是要把數字的每一項分解再進行運算
再來用字串解解看
根據題意,可以很明顯得知在輸入= 時
輸出高為,寬為由#
組成的長方形
備註 : C++中的換行符號為endl
及\n
,但\n
的效率更高
題目要我們把所有字元往前推兩格
由於會變成 就特判為的情況
後面直接做就好了
備註 : string可以看成char陣列 char可以做加減
程式語言(英語:programming language),是用來定義電腦程式的形式語言。它是一種被標準化的交流技巧,用來向電腦發出指令,一種能夠讓程式設計師準確地定義電腦所需要使用資料的電腦語言,並精確地定義在不同情況下所應當採取的行動。
簡單來說就是可以透過程式語言對電腦下達指令,讓電腦知道它要如何執行。
。
Code::Blocks
Code::Blocks是一個免費、針對C/C++設計的整合開發環境,操作簡單,但Code::Blocks本身不包含編譯器,需要另外安裝。
Visual Studio code
Visual Studio code是一款微軟的免費整合開發環境,使用時對硬體的消耗相對Visual Studio小,也有許多插件可用,很受競程選手歡迎。但不包含編譯器,需自行安裝。
軟體安裝參考網站
Code::Blocks
Visual Studio code&&環境變數設定
<bits/stdc++.h>
的介紹在使用變數前,要先告訴電腦你要創造一個變數,這個動作叫做宣告。
變數型別 變數名稱
;例如 int x;
就是宣告一個整數變數x。
變數可分為
- 整數-int
- 浮點數-double
- 字元-char
- 字串-string
輸入-cin
遇空格或是換行即結束
輸出-cout
在需要換行的地方可以輸出endl
或是'\n'
。
※ 不可使用沒設定變數值之變數(會是亂數)
補充
在C++中,可以使用運算子來對變數或數值做運算。以下介紹幾種常用的運算子,同時也會提到當兩種不同型別的變數進行運算時,電腦會如何判斷要使用哪個型別,以及如何做強制型別轉換。
使用等於=
符號表示,會先對等號右邊進行運算,再將結果指定給左邊的變數。這個等號跟數學的等號不太一樣,需要花一點時間習慣。
算術運算子就是數學的運算符號,具有跟數學四則運算一樣,先乘除後加減的規則。
+
-
++
++x
和後置x++
,它們的不同在於,前置的值會是運算之後的值,後置的值則是運算之前的值。可以看成前置++x
是先加再用,而後置x++
是先用再加。--
*
/
/
,會自行向下取整,也就是取商。%
()
()
。3. 比較運算子
在比較運算中只會有true
或 false
兩種結果。
<
小於、>
大於<=
小於等於、>=
大於等於==
相等 、 !=
不相等==
,而=
是指定運算子,意義跟用途都不同,要小心不要搞混。)4. 邏輯運算子
在邏輯運算中只會有 true
或 false
兩種結果。
&&
true
時, A && B
為true
,A && B
為 false
。A && B | B : true | B : false |
---|---|---|
A : true | true | false |
A : false | false | false |
||
true
時,A||B
為true
,兩者皆為false
時為false
。A || B | B : true | B : false |
---|---|---|
A : true | true | true |
A : false | true | false |
!
true
時,!A
為false
,A為false
時,!A
為true
。!A | A : true | A : false |
---|---|---|
result | false | true |
強制型別轉換是在程式運算過程中,對型別做強制的轉換。
轉換格式:
例如要將數字轉為字元的編號:
選擇結構在C++ 中用於判斷條件並決定要執行哪些程式,C++使用if
、else
和else if
作為選擇結構的語法,接下來會一個一個介紹它們的用法。
if
的使用格式如下:
if
後的小括號用於放判斷式,如果判斷式運算結果為true
,就會執行大括號內的程式碼。要注意大括號後不需要加分號。
以下是一個用於判斷你輸入的數是否大於100的程式,如果大於100,將輸出「x大於100」:
若在if判斷為false
,就可能會需要處理條件不成立的狀況,這時就會用到else
。else
需要接在if
或else if
後,else if
會在後面提到。
以下是else
的用法:
以下是一個用於判斷輸入的數是否大於100的程式。如果大於100,將輸出「x大於100」;否則輸出「x小於等於100」:
當你需要多個選擇時,你可以使用else if
來達成,else if
可以接在if
或else if
後面,以下是else if
的用法:
要特別注意的是,在整個選擇結構中,如果在其中一項成立,它就會跳過結構中後面的部分。
以下是一個用於判斷輸入的數是否大於100的程式。如果x大於100,將輸出「x大於100」;如果x等於100,則輸出「x等於100」;否則輸出「x小於100」:
當你需要重複執行一樣的程式時,可以使用迴圈反覆執行相同的程式。在C++中,迴圈分為兩種:for
迴圈和while
迴圈。
for
迴圈通常用在需要重複的次數已知時使用,它的格式如下:
在for迴圈的大括號後不需要加分號。
比較常見的程式寫法如下:
以下是一個可以輸出0 ~ n - 1的程式:
while
迴圈的結構比for
迴圈簡單,只需要一個迴圈執行條件,格式如下:
這是一個計算輸入數字是幾位數的程式:
while
迴圈還有另一種寫法,是使用do-while
。
它跟while
迴圈不同的地方是,while
迴圈會在一開始就檢查是否執行迴圈,而do-while
則是先執行過第一次之後再判斷是否繼續執行迴圈。還有要注意在do-while
的大括號後需要加上分號,while
迴圈則不用。
break
是迴圈的一個特別的指令,只能在迴圈內使用。當執行到break
時,電腦會直接結束break所屬的迴圈。
以下是一個輸入數字n,輸出0 ~ n - 1的程式:
continue
也是迴圈的指令,當執行到continue
時他會跳過迴圈剩下的部分,直接回到判斷迴圈條件的步驟。
以下是一個輸入數字n,輸出0 ~ n - 1的偶數的程式:
陣列是多個相同資料型別的變數所組成的,陣列中的每個元素都是一個變數。它的宣告格式如下:
當要使用時,用中括號[]
加上索引值陣列名稱[索引值]
來表示陣列的某個變數。要特別注意的是,陣列的第一個位置索引值是0,以下是一些簡單的操作方式:
陣列經常搭配迴圈一起使用,以下是一個簡單的程式:
謝謝看到這裡的各位,希望你們都能在資訊界大放異彩,用你們強大的電壓電死我( 怕