[C++] NCYU TA課練習01

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法! #include <iostream> #include <algorithm> using namespace std; int main() { int t; cin>>t; while(t>0){ int number[3]; cin>>number[0]>>number[1]>>number[2]; sort(number,number+3); reverse(number,number+3); cout<<number[0]<<" "<<number[1]<<" "<<number[2]<<endl; t--; } } 如果有任何問題,歡迎私訊跟我討論喔!

October 30, 2020 · 1 min · CPP

[C++] NCYU 回家功課08

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法! #include <iostream> #include <sstream> using namespace std; int main() { int hour,minute,second; char symbol; int priorTime,currentTime; string time; stringstream prior,current; cin>>time; prior<<time; prior>>hour>>symbol>>minute>>symbol>>second; priorTime = hour*3600 + minute*60 + second; cin>>time; current<<time; current>>hour>>symbol>>minute>>symbol>>second; currentTime = hour*3600 + minute*60 + second; int delta = (currentTime - priorTime); delta = ( delta/3600 > 0 ) ? ( delta%3600 > 0 ) ? delta/3600 : delta/3600-1 : 0 ; cout<<delta*20<<endl; } 如果有任何問題,歡迎私訊跟我討論喔!

October 30, 2020 · 1 min · CPP

[C++] NCYU 回家功課07

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法! #include <iostream> using namespace std; int main() { string number; cin>>number; // firstLine for(int i=0;i<3;i++){ switch(number[i]-48){ case 1: cout<<" *"; break; case 4: cout<<"* *"; break; default: cout<<"*****"; break; } if(i!=2) cout<<" "; } cout<<endl; // secondLine for(int i=0;i<3;i++){ switch(number[i]-48){ case 1: case 2: case 3: case 7: cout<<" *"; break; case 5: case 6: cout<<"* "; break; default: cout<<"* *"; break; } if(i!=2) cout<<" "; } cout<<endl; // thirdLine for(int i=0;i<3;i++){ switch(number[i]-48){ case 0: cout<<"* *"; break; case 1: case 7: cout<<" *"; break; default: cout<<"*****"; break; } if(i!...

October 30, 2020 · 1 min · CPP

[C++] NCYU 課堂練習07

請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法!

October 30, 2020 · 1 min · CPP

[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