###### tags: `c++_beginner` # Week 01 > 這周進度用會用飆的哈哈,線上題共5題,但都很基礎。我自己有放幾題之前遇到比較有趣的題目可以試試看。 教學影片的部分因為進度不同,請依照標題和自身情況跳著看,預計兩周內解決4小時:)。(不會全部4小時看完啦) [Link](https://www.youtube.com/watch?v=vLnPwxZdW4Y&t=9526s) <iframe width="560" height="315" src="https://www.youtube.com/embed/vLnPwxZdW4Y?si=jH-Mr9SjWjow0Ku0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> ## I/O ### 講解 所謂的input 和output,very easy ya~ Input 方法 ```cpp= int a; cin>>a; ``` ```cpp= int a; scanf("%d",a); ``` Output 方法 ```cpp= int a=1; cout<<a; ``` ```cpp= int a=1; printf("%d",a); ``` ### 題目 1. [Say "Hello,world" With C++](https://www.hackerrank.com/challenges/cpp-hello-world/problem?isFullScreen=true) 2. [Input and Output](https://www.hackerrank.com/challenges/cpp-input-and-output/problem?isFullScreen=true) ## Data type ### 講解 資料類別,一樣easy的啦~ | Data Type | Size | Description | | -------- | -------- | -------- | | boolean|1 byte|Stores true or false values| | char|1 byte|Stores a single character/letter/number, or ASCII values| |int|2 or 4 bytes|Stores whole numbers, without decimals| |float|4 bytes|Stores fractional numbers, containing one or more decimals. Sufficient for storing 6-7 decimal digits| |double|8 bytes|Stores fractional numbers, containing one or more decimals. Sufficient for storing 15 decimal digits| Example ```cpp= int myNum = 5; // Integer (whole number) float myFloatNum = 5.99; // Floating point number double myDoubleNum = 9.98; // Floating point number char myLetter = 'D'; // Character bool myBoolean = true; // Boolean string myText = "Hello"; // String ``` ### 題目 1. [Basic Data Type](https://www.hackerrank.com/challenges/c-tutorial-basic-data-types/problem?isFullScreen=true) ## Conditional Statements ### 講解 其實就是if else 那些,跟C的語法一模一樣 --- Logical conditions: * Less than: a < b * Less than or equal to: a <= b * Greater than: a > b * Greater than or equal to: a >= b * Equal to a == b * Not Equal to: a != b --- Conditional statements: * Use **if** to specify a block of code to be executed, if a specified condition is true * Use **else** to specify a block of code to be executed, if the same condition is false * Use **else if** to specify a new condition to test, if the first condition is false * Use **switch** to specify many alternative blocks of code to be executed Example ```cpp= if (20 > 18) { cout << "20 is greater than 18"; } ``` ### 題目 1. [Conditional Statements](https://www.hackerrank.com/challenges/c-tutorial-conditional-if-else/problem?isFullScreen=true) ## Loops ### 講解 for迴圈與while迴圈 For 迴圈: ```cpp= for (int i = 0; i < 5; i++) { cout << i << "\n"; } ``` While 迴圈 ```cpp= int i = 0; while (i < 5) { cout << i << "\n"; i++; } ``` ### 題目 1. [For Loop](https://www.hackerrank.com/challenges/c-tutorial-for-loop/problem?isFullScreen=true) ## Test ### 01 : 一層一層 使用者輸入一整數n,然後輸出一層一層遞減的數。如: Input ``` 5 ``` Output ``` 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 5 5 4 3 3 3 3 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 2 1 2 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 3 3 3 3 4 5 5 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 ``` ### 02: 停雨 雨到底停了沒? 輸入一整數n, 1<=n<=10,代表下雨機率。 如果n為1 ~ 4,則輸出一個高度為n的正方形;如果n為5 ~ 7,則輸出一個高為n的等腰直角三角形;如果n為8 ~ 10,則輸出一個高為n的叉叉。 Sample01: Input ``` 3 ``` Output ``` *** *** *** ``` Sample02: Input ``` 5 ``` Output ``` * ** *** **** ***** ``` Sample03: Input ``` 8 ``` Output ``` * * * * * * ** ** * * * * * * ```