or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
C++ 基礎I
編譯器選擇
一個完整的程式碼
一個完整的程式碼
using namespace std
變數的宣告與指派
變數宣告:
常見資料型態:
int:
long long:
double:
char:
string:
bool:
不常用和注意事項:
指派
在程式語言的世界中 = 這個符號有著不同的意思。
它代表著的,並非我們日常生活中的等於,而是指派。
所以,如果我們寫下列的程式碼,意思為 a定義為整數型態,並且給他一個值為3
同樣的,以下的程式碼也是合法的,和我們理解的 = 不同,現實中的相等是用==表示
逼瘋數學人
型態互轉
某些型態是可以互相轉換的,例如
不過要注意的是,當浮點數轉為int時候,小數點會全部捨去。
輸入輸出
輸入cin
那如果我輸入123abc,x會存放什麼,答案是123
cin一個整數時,程式會一直讀取直到下一個位置的字元不是數字為止!
多輸入
假設我們想輸入 1 2 3 4 5 每個都用空格隔開
輸出cout
運作(輸出的東西,若為文字,用 “” 包起來)
題目正常行尾要輸出換行字元 ’\n’ 或者打 endl 來換行
\(務必注意cin,cout 的箭頭方向\)
四則運算
常用
運算後指派
針對 a = a + 1 , a = a - 1 ,有下列寫法
不同之處
條件判斷與基礎邏輯
格式
舉個例子
注意事項
特別需要注意的有以下幾點:
基礎邏輯
注意事項
練習
A001 A002 A003
網址:ncuma-oj.math.ncu.edu.tw
三元運算子
什麼是三元運算子(ternary operator),簡單說它是 if … else … 的精簡版。
上面語法看不懂也沒關係
一般寫 if … else … 的例子如下:
用三元運算子可以寫成
進階運算
浮點數誤差
另外,在程式中可以使用1e5,1e6…這種用法,簡單說就是10的X次方,所以我們在定義epsilon可以不用定義的那麼長。
例如double eps = 0.000000001;
等價於 eps = 1e-9;
字元運算
"大寫轉小寫"
字元比較
位元運算
電腦以二進位 0 和 1 儲存,有以下幾種位元運算
左右移
"大寫轉小寫"
如果利用xor的性質,是不是就剛好可以讓大小轉小寫,小寫轉大寫了呢?
"乘\(2^n\)" 除\(2^n\)
"是否為奇數"
我們在判斷一個數字是否為奇數很顯然會這樣寫
但我們可以利用 true 為 1, false 為 0 的特性,搭配 & 且 (and)。如果是奇數的話2進位的最右端一定是1,所以&1的結果就會是 1 (true)
這樣有什麼好處? 感覺變得好難理解 ?
理由是使用後者的話可以加速約600%的效率 有興趣可以看這篇利用位元運算加速運算效率
迴圈
當我們需要重複做同一件事很多次,總不能一個一個全部寫出來,如果要重複1000千次,那是不是程式碼就要幾千行,影響了可讀性,所以便會使用迴圈,而迴圈有下列的用法。
for
最常用的迴圈,如下:
for迴圈有四件事要做
string
記得要加標頭檔
string 基本操作
字串長度 : 變數名稱.length()
string 使用 for迴圈遍歷
在處理字串的時候很長需要一個一個字元來判斷,此時就會用到 length(),舉個簡單例子。
練習
A004 A005
網址:ncuma-oj.math.ncu.edu.tw