book 14單元 重複 固定次數 === --- # **14-3 印N次** 寫一個程式,我說幾次,就印幾次「HaHaHa!」。 輸入範例: 12 輸出範例: HaHaHa! HaHaHa! HaHaHa! HaHaHa! HaHaHa! HaHaHa! HaHaHa! HaHaHa! HaHaHa! HaHaHa! HaHaHa! HaHaHa! :::danger ``` 重複-固定次數-印N次(15.0)*/ #include <iostream> using namespace std; int main() { int i=1; int N; cin >>N; while (i<=N) { cout <<"HaHaHa!\n"; i=i+1; } return 0; } ``` ::: --- 請撰寫一程式,計算所有輸入整數的總和。 輸入的第1個整數,代表後面輸入整數的個數。 接下來,逐一輸入各個整數。 以輸入範例為例,第一個數字6表示會輸入6個整數, 6個整數為接下來的「1、2、3、5、6、7」。 輸入範例: 6 1 2 3 5 6 7 輸出範例: 24 :::danger ``` 重複-固定次數-計算總和(5.0)*/ #include <iostream> using namespace std; int main() { int a,b,c,d=0; cin>>b; for(a=1;a<=b;a++) { cin>>c; d=c+d; } cout<<d<<endl; return 0; } ``` ::: --- book 15單元 重複 警示值 === --- 寫一個程式,印出「HaHaHa!」, 不管我說什麼都持續印「HaHaHa!」, 直到我說「-1」,才停止。 輸入範例: 2 3 4 5 -1 輸出範例: HaHaHa! HaHaHa! HaHaHa! HaHaHa! :::danger ``` 重複-警示值-印到我說停(20.0)*/ #include <iostream> using namespace std; int main() { int x; cin >> x; while (x!=-1) { cout << "HaHaHa!\n"; cin >> x; } return 0; } ``` ::: --- 寫一個程式,它可以處理任何筆數的成績,來處理全班分數。 第一個工作:印出輸入的分數,直到輸入「-1」,才停止。 輸入範例: 75 75 75 88 70 64 83 89 -1 輸出範例: 75 75 75 88 70 64 83 89 :::danger ``` 重複-警示值-直到我說停(20.0)*/ #include <iostream> using namespace std; int main() { int x; cin >> x; while (x!=-1) { cout << x << endl; cin >> x; } return 0; } ``` ::: --- # **15-3 重複幾次** 重複-警示值-重複幾次 寫一個程式,它可以處理任何筆數的成績,來處理全班分數。 第二個工作:重複輸入,直到輸入「-1」,才停止。 請輸出「輸入的分數筆數」。 輸入範例: 75 75 75 88 70 64 83 89 -1 輸出範例: 8 :::danger ``` #include <iostream> using namespace std; int main() { int x,i=0;//i=輸入成績的筆數 cin >> x; while (x!=-1) { i=i+1;//累計輸入成績的筆數 cin >> x; } cout << i << endl; return 0; } ``` ::: --- 寫一個程式,它可以處理任何筆數的成績,來處理全班分數。 第三個工作:重複輸入,直到輸入「-1」,才停止。 請輸出「全班分數總合」。 輸入範例: 75 75 75 88 70 64 83 89 -1 輸出範例: 619 :::danger ``` 重複-警示值-班級均分-總和(15.0)*/ #include <iostream> using namespace std; int main() { int i=1; int N; cin >> N; while (i<=N)//(i<=12) { cout <<"HaHaHa!\n"; i=i+1; } return 0; } ``` ::: --- 寫一個程式,輸入一個整數, 如果是偶數,印出「(此數)是偶數」; 如果是奇數,則印出「(此數)是奇數」。 此程式可以重複執行,直到輸入的值為0 輸入範例: 78 45 0 輸出範例: 78是偶數 45是奇數 :::danger ``` 重複-警示值-奇數還是偶數?(15.0)*/ #include <iostream> using namespace std; int main() { int num; cin >> num; while (num!=0) { if (num%2==0) cout << num << "是偶數\n"; else cout << num << "是奇數\n"; cin >> num; } return 0; } ``` ::: --- book 16單元 for迴圈 === --- 計算整數1到100,公差為1的累加和。 如1+2+3+...+100的和。 輸入範例: 輸出範例: 5050 :::danger ``` for-1到100和(10.0)*/ #include <iostream> using namespace std; int main() { /* int sum=0; int i=1; while (i<=100) { sum=sum+i; i=i+1; } cout << sum << endl; */ // for 迴圈 int sum = 0; for (int i=1; i<=100;i=i+1) { sum=sum+i; } cout << sum << endl; return 0; } ``` ::: --- **for-奇數和** 計算整數1到99,公差為2的累加和。 如1+3+5+...+99的和。 輸入範例: 輸出範例: 2500 :::danger ``` for-奇數和(10.0)*/ #include <iostream> using namespace std; int main() { int sum=0; for (int i=1;i<=100;i=i+2) { //cout << i << endl; sum=sum+i; } cout << sum << endl; return 0; } ``` ::: --- **for-偶數和** 計算整數2到100,公差為2的累加和。 如2+4+6+...+100的和。 輸入範例: 輸出範例: 2550 :::danger ``` for-偶數和(10.0)*/ #include <iostream> using namespace std; int main() { int sum=0; for (int i=2; i<=100;i=i+2) { //cout << i << endl; sum=sum+i; } cout << sum << endl; return 0; } ``` ::: --- # **16-4 1到N之和** 輸入一整數n, 計算整數1到n,公差為1的累加和。 如1+2+3+...+n的和,n>1。 輸入範例: 99 輸出範例: 4950 :::danger ``` for-1到N之和(10.0)*/ #include <iostream> using namespace std; int main() { int sum=0; int n; cin >> n; for (int i=1;i<=n;i=i+1) { sum=sum+i; } cout << sum << endl; return 0; } ``` ::: --- 17-2 重複結構與判斷式 === 請撰寫一程式,給一個正整數N,印出1-N之間,所有不是6的倍數。 輸出以空格隔開。 輸入範例: 50 輸出範例: 1 2 3 4 5 7 8 9 10 11 13 14 15 16 17 19 20 21 22 23 25 26 27 28 29 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 49 50 :::danger ``` 重複結構與判斷式-非6的倍數(10.0)*/ #include <iostream> using namespace std; int main() { int i=1; int N; cin >> N; while (i<=N) { if (i%6!=0) // 判斷i不是16的倍數 { cout << i << " "; } i=i+1; } return 0; } ``` ::: --- # **19-2 草履蟲分裂** 已知在適宜環境之下,草履蟲可以進行分裂,且每次分裂從1隻變成2隻。 試問草履蟲經過n次分裂之後,會變成幾隻? 程式重複輸入,直到輸入-1才停止。 輸入範例: 5 11 12 10 6 7 -1 輸出範例: 32隻 2048隻 4096隻 1024隻 64隻 128隻 :::danger ``` 迴圈練習-1-草履蟲分裂(5.0)*/ #include <iostream> using namespace std; int main() { int n, amount; //n:分裂幾次, amount:草履蟲數量 cin >> n; while (n!=-1) { amount=1; for (int i=1;i<=n;i=i+1) { amount=amount*2; } cout << amount << "隻"<<endl; cin >> n; } return 0; } ``` ::: --- # **24-3 直到我說停** 寫一個程式,從標準輸入取得一系列整數並輸出,程式重複輸入,直到輸入負數才停止,數字最多不超過10000個。 格式如輸出範例所示。 輸入範例: 1 2 3 4 5 9 8 7 6 -2 輸出範例: array[0]=1 array[1]=2 array[2]=3 array[3]=4 array[4]=5 array[5]=9 array[6]=8 array[7]=7 array[8]=6 :::danger ``` 一維陣列-直到我說停(10.0)*/ #include <iostream> using namespace std; int main() { int x[10000]; int n=0; cin >> x[n]; while (x[n]>0) { //cout << x << endl; n=n+1; cin >> x[n]; } //cout << n; for (int i=0;i<n;i=i+1) { cout << "array["<<i<<"]=" << x[i] <<endl; } return 0; } ``` :::