---
# System prepended metadata

title: Day2 Answer
tags: [APCS檢定營隊]

---

###### tags: `APCS檢定營隊`
# Day2 Answer
## P17
```python=
p = 0
for i in range(1,101,1):
    p+=i
print(p)    
```
## P17-1
```python=
p = 0
n = int(input())
for i in range(1,n+1,1):
    p+=i
print(p)    
    
```
## P17-2
```python=
n = int(input())
q = int(input())
ans = 0
for i in range(1,q+1,n):
    ans+=i
print(ans)    
```
## P17-ex1
```python=
n = int(input())
for i in range(0,n):
    print(' '*(n-i-1),'*'*(2*(i+1)-1),sep='')
```
## P17-ex2
```python=
n = int(input())
m = int(input())
if m==1:
    for i in range(0,n):
        print(' '*(n-i-1),'*'*(2*(i+1)-1),sep='')
if m==2:
    for i in range(0,n):
        print('*'*(2*(i+1)-1),sep='')
if m==3:
    for i in range(n-1,-1,-1):
        print(' '*(n-i-1),'*'*(2*(i+1)-1),sep='')        
        
    
    
```
## P18
```python=
n = int(input())
m = int(input())
while n!=0 and m!=0:
    if n<m:
        m%=n
    else:
        n%=m
if n == 0:
    print(m)
else:
    print(n)
    
```
## P18-1
```python=
while True:
    n = int(input())
    if n==0:
        break
    m = int(input())
    while n!=0 and m!=0:
        if n<m:
            m%=n
        else:
            n%=m
    if n == 0:
        print(m)
    else:
        print(n)
    
```
### P19
```python=
def cal(n):
    if n%4!=0:
        print('Normal year')
    if n%4==0 and n%100!=0:
        print('leap year')
    if n%100==0 and n%400!=0:
        print('Normal year')    
while True:        
    n = int(input())+1911
    if n<1911:
        break
    cal(n)

    
```
## P18-2
```python=
while True:
    n = int(input())
    if n==-1:
        break
    m = int(input())
    if n<=0 or m<=0:
        continue
    while n!=0 and m!=0:
        if n<m:
            m%=n
        else:
            n%=m
    if n == 0:
        print(m)
    else:
        print(n)
```
## P19
```python=
def cal(n):
    if n%4!=0:
        print('Normal year')
    if n%4==0 and n%100!=0:
        print('leap year')
    if n%100==0 and n%400!=0:
        print('Normal year')    
while True:        
    n = int(input())+1911
    if n<1911:
        break
    cal(n)

    
```
## P20
```python=
def power(n):
    if n==1:
        return n
    return n*power(n-1)
def C(n,m):
    return power(n)/(power(n-m)*power(m))
print(C(int(input()),int(input())))
```
## P21
```python=
def gcd(a,b):
    if b==0:
        return a
    return gcd(b,a%b)
def lcm(a,b):
    return (a*b)/gcd(a,b)
a = int(input())    
b = int(input())
c = int(input())

print(lcm(lcm(a,b),c))
```
## P22
```python=
a = int(input())
b = int(input())
c = int(input())
print(a,b,c,sep='hello',end='How Are You')
```
## P25
```python=
a = []
a.append(31)
a.append(17)
a.sort()
a.append(21)
a.insert(1,10)
a.pop(0)
print(a)
```
## P25-1
```python=
t = int(input())
list = [1,2,3,4,5,6,7,8,9,10]
for i in range(t):
    c = input()
    d = c.split()
    for i in range(1,len(d)):
        d[i]=int(d[i])

    if d[0] == "add":
        list.append(d[1])
    if d[0] == "insert":
        list.insert(d[1],d[2])
    if d[0] == "remove":
        list.pop(d[1])
    if d[0] == "remove-range":
        for i in range(d[1],d[2]+1):
            list.pop(d[1])
    if d[0] == "swap":
        c = list[d[2]]
        list[d[2]]=list[d[1]]
        list[d[1]]=c
    if d[0] == "print":
        print(list)
```
## P26
```python=
a = input()
b = input()
c = input()
d = [[a[0],a[1],a[2]],[b[0],b[1],b[2]],[c[0],c[1],c[2]]]
print(d)
for i in range(3):
    print(d[i])
```
## INA的井井井字遊戲
```cpp=
#include "testlib.h"
#include <iostream>
#include <cstdlib> /* 亂數相關函數 */
#include <ctime>   /* 時間相關函數 */
using namespace std;
bool judge(int * table)
{
    int win[8][3]  = {{0, 1, 2}, {0, 3, 6,}, {0, 4, 8}, {1, 4, 7}, {2, 5, 8}, {3, 4, 5}, {6, 7, 8}, {2, 4, 6}};
    for(int i=0;i<8;i++)
        if (table[win[i][0]]==table[win[i][1]]&&table[win[i][1]]==table[win[i][2]] && table[win[i][0]]!=0)
            return true;
    return false;
}
void  output(int *table)
{
    for (int i = 0 ;i <3;i++,cout<<endl)
        for(int x =0 ; x<3;x++)
            cout<<table[i*3+x]<<' ';
}

int main(int argc, char* argv[]) {
    registerGen(argc,argv,0);
    int n;
    //n = rnd.next(3,100);
    //cout<<n<<endl;
    cin>>n;
    while(n--)
    {
        int table[9] = {0};
        int round = 1;
        int turn = 0;
        set<int> lst;
        while (!judge(table) and round <= 9){
            int a;
            do{
                a = rnd.next(0,8);
            } while (lst.count(a));
            lst.insert(a);
            //cout<<a<<endl;
            cin>>a;
            table[a] = turn % 2 + 1;
            //output(table);
            //cout<<endl;
            turn += 1;
            round++;
        }
        turn+=1;

        if(judge(table))
            cout<<"player "<<turn % 2 + 1<<" win"<<endl;
        else
            cout<<"peace"<<endl;
    }




}

```
## 請問您今天要來點紙牌遊戲嗎?
```python=
def main():

    def input_card(player_id:int)->int:
        nonlocal player, used_card
        inin = input().split()
        for card in inin:
            point = card_point(card)
            type_ = card_type(card)
            if(point==-1):
                print("point error")
                return -1
            if(type_==-1):
                print("type error")
                return -1
            if(used_card[point][type_]):
                print("duplicated card")
                return -1
            player[player_id].append((point,type_))
            # used_card[point][type_] = True
        player[player_id].sort()
        return 1


    def youre_fucked(p):
        return p[4]


    def card_point(card:str)->int:
        point_dic = {'A':14, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9, '10':10, 'J':11, 'Q':12, 'K':13}
        if(card[:-1] not in point_dic.keys()):
            print(card[:-1])
            return -1
        return point_dic[card[:-1]]


    def card_type(card:str)->int:
        type_dic = {'S':3, 'H':2, 'D':1, 'C':0}
        if(card[-1] not in type_dic.keys()):
            return -1
        return type_dic[card[-1]]


    def pair(p):
        for i in range(4):
            if(p[i][0]==p[i+1][0]):
                return p[i+1]
        return False


    def two_pair(p):
        match_once = False
        score = []
        for i in range(4):
            if(p[i][0]==p[i+1][0] and p[i]!=score):
                score = p[i+1]
                if(match_once):
                    return score
                match_once = True
        return False


    def three_of_a_kind(p):
        for i in range(3):
            if(p[i][0]==p[i+1][0]==p[i+2][0]):
                return p[i+2]
        return False


    def straight(p):
        points = [card[0] for card in p] + [card[0]+13 for card in p[:4]]
        for i in range(len(points)-4):
            if(points[i]+4==points[i+1]+3==points[i+2]+2==points[i+3]+1==points[i+4]):
                return p[4]
        return False


    def flush(p):
        return p[4] if(len(set([card[1] for card in p]))==1) else False


    def full_horse(p):
        return three_of_a_kind(p) if(three_of_a_kind(p)!=False and pair(p)!=False) else False



    def four_of_a_kind(p):
        if(len(set([card[0] for card in p]))==2):
            return p[4] if(p[4][0]==p[3][0]) else p[3]
        return False


    def straight_flush(p):
        return p[4] if(flush(p)!=False and straight(p)!=False) else False


    def judge(p):
        funcs = [youre_fucked,
                 pair,
                 two_pair,
                 two_pair,
                 three_of_a_kind,
                 straight,
                 flush,
                 full_horse,
                 four_of_a_kind,
                 straight_flush]
        for number in range(8,-1,-1):
            score = funcs[number](p)
            if(score!=False):
                return number,score

    # -----------------------------------------------
    player_count = 2
    player = [[] for i in range(player_count)]
    used_card = [[False for i in range(4)] for i in range(15)]

    for i in range(2):
        if(input_card(i))==-1:
            return


    win_player = -1
    win_number = -1
    win_score = []
    for i in range(player_count):
        number,score = judge(player[i])
        if(number>win_number):
            win_player = i
            win_number = number
            win_score = score
        elif(number==win_number):
            if(score[0]>win_score[0] or (score[0]==win_score[0] and score[1]>win_score[1])):
                win_player = i
                win_number = number
                win_score = score
            elif(score==win_score):
                raise "U FUCK"


    # print(win_player)
    # print(win_number)
    # print(win_score)
    p = {1:'chino',2:'coco'}
    print(p[win_player+1],'win')

if(__name__=='__main__'):
    n = int(input())
    for i in range(n):
        main()
```

