---
# System prepended metadata

title: 黎明高中資訊社第一次模擬平時考(*試辦*)
tags: [社內考試]

---

# 黎明高中資訊社第一次模擬平時考(*試辦*)

---

## 說明:
社長或副社長將從itsa或者zero judge挑選出3至4題的題目，基本上都不會選有出現在資訊社資源目錄的，難度隨題號遞增，在社團課抑或週六課程時將驗收，選擇自己會寫的先做，目前都是你們能夠解決的。
## 完成者填寫說明:
若已答題且正確完畢，請寫上自己的姓名，可以自己新增更多名次(如第一題有到11名，可以繼續增加)，有空社長將抽查答對者的想法與程式，一切採自由心證，當然我回去看報表核對。
## 時間:
2020/03/23至2020/04/01 <10 p.m>(愚人節)
## 獎勵:
副社長將提供價值(10±1)元的茶葉蛋10顆，完成兩題以上者(前10名)。
## 社長的話:
> [name=風思]
> 期盼各位能更加認真~
> [color=#db27ab]
## 解答:
已釋出如下。


---
### 1.[[C_MM85-易] 完美數問題](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=2295)
#### 問題敘述:一個正整數稱為完美數，如果此數等於其因數 ( 不包括本身，不限為質因數 ) 的和。例如： 6 是一個完美數因為 6 = 1+2+3 。請撰寫一個函式 isPerfect() 來判斷傳進去的參數是否為一完美數。並寫一個主程式運用這個 isPerfect() 函式來判斷自 1 到任意指定正整數之間哪些整數是完美數，將它們列印在螢幕上。
### 完成者:
範例:
1. <曾俊翔> 
> [time=Sat, Mar 28, 2020 2:59 PM]
2. <李晨維>
> [time=Sat, Mar 28, 2020 3:02 PM]
3. <張嘉元>
> [time=Sat, Mar 28, 2020 3:02 PM]
4. <柯昀杰>
> [time=Sat, Mar 28, 2020 3:06 PM]
5. <吳冠毅>
> [time=Sun, Mar 29, 2020 7:58 AM]
6. <郭浩雲>
> [time=Sun, Mar 29, 2020 8:12 AM]
7. <賴晨興>
> [time=Wed, Apr 1, 2020 11:17 AM]
### 參考解答:
#### C++:
(照題目意思來)
```cpp=
#include <iostream>

using namespace std;

bool isPerfect(int n){
    int sum=0;
    for(int i=1; i<n; i++){
        if(n%i==0)
            sum+=i;
    }
    if(n==sum)
        return true;
    else
        return false;
}
int main(){
    int n;
    cin >> n;
    for(int i=6; i<=n; i+=2){
        if(isPerfect(i)){
            if(i!=6)
                cout << " ";
            cout << i;
        }
    }
    cout << " is perfect number" << endl;

    return 0;
}
```
#### C:
```cpp=
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
    int a,i,j,sum=0;
    scanf("%d",&a);
    for(i=6; i<=a; i++){
        sum=0;
        for(j=1; j<i; j++){
            if(i%j==0)
                sum+=j;
        }
        if(sum==i){
            if(i==6)
                printf("%d",i);
            else
                printf(" %d",i);
        }
    }
    printf(" is perfect number\n");

    return 0;
}
```
---

### 2.[[C_MM058-中] 二項式求解](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=1903)
#### 問題敘述:給定一二項式，ax+by=c，輸入3個整數，a,b,c，求出所有x,y之非負整數解，並將其解依序列出。例a=2, b=3, c=10, 2x+3y=10, 解答為x=2,y=2和x=5,y=0;結果列出如下所示：
```
2,2
5,0
```

### 完成者:
1. <張嘉元>
> [time=Sat, Mar 28, 2020 3:02 PM]
2. <李晨維>
> [time=Sat, Mar 28, 2020 3:02 PM]
3. <吳冠毅>
> [time=Sun, Mar 29, 2020 8:00 AM]
4. <柯昀杰>
> [time=Sun, Mar 29, 2020 12:14 PM]
5. <郭浩雲>
> [time=Wed, Apr 1, 2020 10:45 PM]
### 參考解答:
#### Java:
```java=
import java.util.*;

//[C_MM058-中] 二項式求解
//2020,03,17;10:24
public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String[] binomial = sc.nextLine().split(",");
		int a = Integer.parseInt(binomial[0]);
		int b = Integer.parseInt(binomial[1]);
		int c = Integer.parseInt(binomial[2]);
		for (int x = 0; x <= c; x++) {
			for (int y = 0; y <= c; y++) {
				if (a * x + b * y == c) {
					System.out.println(x + "," + y);
				}
			}
		}

	}

}
```

---

### 3.[[C_MM070-易] 等邊三角方塊](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=2057)
#### 問題敘述:給定1個數字A(個方塊)，求N。N為最大可以構成的等邊三角方塊
### 完成者:
1. <張嘉元>
> [time=Sat, Mar 28, 2020 3:03 PM]
2. <李晨維>
> [time=Sat, Mar 28, 2020 3:03 PM]
3. <吳冠毅>
> [time=Sun, Mar 29, 2020 8:00 AM]
4. <柯昀杰>
> [time=Wed, Apr 1, 2020 10:30 AM]
5. <郭浩雲>
> [time=Wed, Apr 1, 2020 10:45 PM]
### 參考解答:
#### C++:
```cpp=
#include <bits/stdc++.h>

using namespace std;

int main(){
    int A,N,sum;
    while(cin >> A){
        sum=0;
        for(int i=1; true; i++){
            sum+=i;
            if(sum>A){
                N=i-1;
                break;
            }
        }
        cout << N << endl;
    }

    return 0;
}
```
---

### 4.[[C_MM075-易] 店家找錢](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=2081)
#### 問題敘述:小明到趨程式買大華的生日禮物，但是很遺憾的她身上只剩下千元大鈔，他想知道如果店家零錢分別的個數為已知，那他買了N元的禮物K個之後，會把千元大鈔最少換成多少個零錢(零錢有500、100、50、10、5、1)。
### 完成者:
1. <李晨維>
> [time=Sat, Mar 28, 2020 3:03 PM]
2. <柯昀杰>
> [time=Sun, Mar 29, 2020 12:28 AM]
3. <吳冠毅>
> [time=Sun, Mar 29, 2020 8:01 AM]
4. <郭浩雲>
> [time=Sun, Mar 29, 2020 8:12 AM]
5. <張嘉元>
> [time=Wed, Apr 1, 2020 11:25 AM]
6. <何承煜>
> [time=Thu, Apr 2, 2020 7:23 AM]
### 參考解答:
#### C++:
```cpp=
#include <bits/stdc++.h>

using namespace std;

int main(){
    int K,N,count=0;
    int arr[6][2]= {{0,500},{0,100},{0,50},{0,10},{0,5},{0,1}};
    cin >> K >> N;
    for(int i=0; i<6; i++)
        cin >> arr[i][0];
    int money = 1000-(K*N);
    for(int i=0; i<6;){
        if(money>=arr[i][1]){
            while(arr[i][0]>0 and money>=arr[i][1]){
                count++;
                arr[i][0]--;
                money-=arr[i][1];
            }
            i++;
        }
        else
            i++;
    }
    cout << count << endl;

    return 0;
}
```
---
## 統計表

| 第一題 | 第二題 | 第三題 | 第四題 | 全對者 |
|:------:|:------:|:------:|:------:|:------:|
|   6    |   5    |   5    |   6    |   4    |

> [time=Wed, Apr 1, 2020 10:43 PM]

---
###### tags: `社內考試`