---
# System prepended metadata

title: book 14單元 重複 固定次數

---

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; 
  }
```
:::