[C++] NCYU 課堂練習06

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法! 第一題 關於輸出數字間都空格,最後一個不空格,有很多種做法,這裡提供兩種: 先輸出第一個數字,之後再接一個空格再一個數字 cout<<"第一個數字"; cout<<" "<<"接下來的數字"; 也可以先數字加空格,最後再加一個數 cout<<"前面的數字"<<" "; cout<<"最後的數字"; 因為每一個大於等於 1 的整數,一定會有 1 這個因數,所以可以先印出 1 如此一來,迴圈就只要從 2 開始判斷 判斷到小於 number 就好(再看一次題目) 當迴圈結束,再換行(注意排版!) 程式碼大概如下: #include <iostream> using namespace std; int main() { int number; while(cin>>number){ cout<<"1"; for (int i=2;i<number;i++) if (number%i==0) cout<<" "<<i; cout<<endl; } } 第二題 先拆解題目,分成階層跟取餘數 階層定義為 0! = 1, n! = 1 x 2 x ... x n 可以用迴圈做,並用一個變數儲存它(注意變數是否初始化,意思是應該要一開始就指派值) 取餘數問題,根據維基百科 ab mod n = [(a mod n)*(b mod n)]mod n 如果不清楚,就用數字舉例自己算算看! 程式碼大概如下:...

October 30, 2020 · 1 min · CPP

[C++] NCYU 課堂練習05

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法! 第一題 邏輯判斷!按照題目敘述邏輯 #include<iostream> using namespace std; int main() { int y; cin>>y; if( ( y%4==0 && y%100!=0 ) || y%400==0 ) cout<<"YES"; else cout<<"NO"; } 第二題 輸出會有七種可能,慢慢討論 可以分成四種象限與其他部分 #include <iostream> using namespace std; int main() { int x,y; cin>>x>>y; if ( x!=0 && y!=0 ){ if ( x>0 ){ if ( y>0 ) cout<<"第一象限"; else cout<<"第四象限"; } else{ if ( y>0 ) cout<<"第二象限"; else cout<<"第三象限"; } } else{ if ( x==0 && y==0 ) cout<<"原點"; else if ( x==0 ) cout<<"Y軸"; else cout<<"X軸"; } } 第三題 可利用題目的年分來當作起使判斷(2019為己亥,以此類推) 也可用定義解(上網查) 天干地支分開判斷,case 數會比較少 #include <iostream> using namespace std; int main() { int year; cin>>year; int x = year%10, y = year%12; switch(x){ case 4: cout<<"甲"; break; case 5: cout<<"乙"; break; case 6: cout<<"丙"; break; case 7: cout<<"丁"; break; case 8: cout<<"戊"; break; case 9: cout<<"己"; break; case 0: cout<<"庚"; break; case 1: cout<<"辛"; break; case 2: cout<<"壬"; break; case 3: cout<<"癸"; break; } switch(y){ case 4: cout<<"子"; break; case 5: cout<<"丑"; break; case 6: cout<<"寅"; break; case 7: cout<<"卯"; break; case 8: cout<<"辰"; break; case 9: cout<<"巳"; break; case 10: cout<<"午"; break; case 11: cout<<"未"; break; case 0: cout<<"申"; break; case 1: cout<<"酉"; break; case 2: cout<<"戌"; break; case 3: cout<<"亥"; break; } } 第四題 每個 char (字元)都會有一個值,稱為 ASCII 利用 ASCII 來確認該字是否在 小寫區間 #include <iostream> using namespace std; int main() { char word; cin>>word; // a 97 z 122 A 65 Z 90 if ( 97<=word && word<=122 ) cout<<"Character "<<word<<" is a lowercase letter....

October 30, 2020 · 2 min · CPP

[C++] NCYU 課堂練習04

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法! 第一題 cin.ignore(長度,想跳過的字元) 用來忽略特定字元 string 有兩個函式 size() 跟 length() 都是回傳字串長度 #include <iostream> using namespace std; int main() { string word; cin.ignore(100,'='); cin>>word; cout<<word<<", length="<<word.size(); } 第二題 三角函數的函式是屬於 <cmath> 函式庫 #define 可把想替換的字換成另一個字,Pi 也可以用 float 、 double 存 #include <iostream> #include <cmath> #include <iomanip> #define Pi 3.14159 using namespace std; int main() { float a,b,c; cin>>a>>b>>c; cout<<setprecision(3)<<fixed<<a*b*sin(c*Pi/180.0)/2.0; } 第三題 先判斷分數(注意題目是大於等於),再判斷溫度及氣壓 邏輯運算子 || 是 or 、 && 是 and #include <iostream> using namespace std; int main() { int score; cin>>score; if(score>=100) cout<<"High"; else cout<<"Low"; cout<<endl; int tem,pre; cin>>tem>>pre; if( tem>=40 || pre>=200 ) cout<<"Warning"; else cout<<"OK"; cout<<endl; } 如果有任何問題,歡迎私訊跟我討論喔!

October 30, 2020 · 1 min · CPP

[C++] NCYU 課堂練習03

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法! 第一題 iomanip 是 C++ 管理 格式化輸出 的函式庫。 iomanip 官方文件 double 與 float 為浮點數宣告,可以儲存小數。 除數與被除數只要一者形態為浮點數,商就會是浮點數。 因為第二位無條件進位,加多少就會進位呢? #include<iostream> #include<iomanip> using namespace std; int main() { double a,b; cin>>a>>b; double result = a/b; //1.623 -> 1.63 cout<<setprecision(2)<<fixed<<result+0.004; } 第二題 簡單的四則運算,不會忘記週長跟面積的算法吧! #include<iostream> using namespace std; int main() { int a,b,c,d; cin>>a>>b>>c>>d; cout<<(c-a)*(d-b)<<endl; cout<<(c-a+d-b)*2; } 如果有任何問題,歡迎私訊跟我討論喔!

October 30, 2020 · 1 min · CPP

[C++] NCYU 課堂練習02

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法! 第一題 <iostream> 是 C++ 負責管 cin 、 cout 的函式庫, 如果在前面加上 #include 代表引入後方的函式庫。 #include <iostream> 使用命名空間,否則每次打 cin 、 cout 都要在前面加上 std:: ,像是: std::cout<<"Hello, world!"<<endl; using namespace std; int 為整數宣告,每宣告一次就像電腦索取 4 bytes ,能夠存放 -231-1 ~ 231 範圍的整數。 int 後面接著變數名,命名需符合規則(命名盡量要有意義),變數可以一開始給予數值,也可以之後再指派。 題目要輸入三個整數,並輸出它們相乘的結果。程式碼大概如下: #include <iostream> using namespace std; int main() { int number1,number2,number3; cin>>number1>>number2>>number3; cout<<number1*number2*number3; } 第二題 % 是取餘數的意思。 / 是整數除法的意思。 10 / 3 = 3 ... 1 意即 10 / 3 會等於 3,10 % 3 會等於 1 如何判斷一個數是偶數奇數呢?我們可以將它除以二!...

October 30, 2020 · 1 min · CPP