#32605: 解題想法&&解法


s010145@pths.ptc.edu.tw (210 15林維摩)

學校 : 不指定學校
編號 : 208580
來源 : [111.242.138.183]
最後登入時間 :
2022-10-24 18:26:40
i428. 1. 巴士站牌 -- 2022年10月APCS | From: [180.176.69.238] | 發表日期 : 2022-10-23 18:59

如題目所說:求相鄰兩點的最大和最小距離

不需要使用陣列全部算出可以用兩個int 取代(分別代表最大(max)和最小(min))(我將此兩位的初始值設為200和-200)

再來我們可以知道的是:輸入n個點就會有n-1段距離

再算完距離後即存入這兩個int裡

程式碼:

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    int n;
    cin>>n;
    int num[n][2];
    for(int i=0;i<n;i++){
        for(int j=0;j<2;j++){
            cin>>num[i][j];
        }
    }
    int min=200,max=-200;
    for(int i=0;i<n-1;i++){
        int a=abs(num[i][0]-num[i+1][0])+abs(num[i][1]-num[i+1][1]);
        if(min>a){
            min=a;
        }
        if(max<a){
            max=a;
        }
    }
    cout<<max<<" "<<min;
}

 

 

 

 
#32609: Re: 解題想法&&解法


ostriich_LEN (駱駝)

學校 : 國立嘉義大學
編號 : 148499
來源 : [59.127.42.125]
最後登入時間 :
2024-05-17 23:24:51
i428. 1. 巴士站牌 -- 2022年10月APCS | From: [59.127.42.125] | 發表日期 : 2022-10-23 19:47

如題目所說:求相鄰兩點的最大和最小距離

不需要使用陣列全部算出可以用兩個int 取代(分別代表最大(max)和最小(min))(我將此兩位的初始值設為200和-200)

再來我們可以知道的是:輸入n個點就會有n-1段距離

再算完距離後即存入這兩個int裡

程式碼:

#include
#include
using namespace std;
int main(){
    int n;
    cin>>n;
    int num[n][2];
    for(int i=0;i
        for(int j=0;j<2;j++){
            cin>>num[i][j];
        }
    }
    int min=200,max=-200;
    for(int i=0;i
        int a=abs(num[i][0]-num[i+1][0])+abs(num[i][1]-num[i+1][1]);
        if(min>a){
            min=a;
        }
        if(max
            max=a;
        }
    }
    cout<}

 

 

 

其實開一維陣列就行了吧,題目指要求相鄰的兩個站牌。

 
ZeroJudge Forum