#38979: c(2ms, 100KB)/c++(2ms, 104KB)/java(0.3s, 1.9MB)這題還好考試時有檢查,沒有失分


bobobo0413 (Andy)

學校 : 國立臺灣大學
編號 : 252359
來源 : [163.30.63.65]
最後登入時間 :
2024-11-11 10:00:57
m931. 1. 遊戲選角 -- 2024年1月APCS | From: [114.137.70.179] | 發表日期 : 2024-01-07 20:01

c(2ms, 100KB)/c++(2ms, 104KB)/java(0.3s, 1.9MB)

解題思路:這題要思考的是如何取第二高數字,有很多方法,我的方法是不使用函數,反正小程式怎麼寫都會過。使用兩個變數設定第一高和第二高的數字,要記得新的數字高於本來最高數字,要先把它紀錄在第二高數字,再把新高紀錄再第一高數字,我閒閒一直設計測資測試,發現到我沒寫到,還好有發現,不然失分慘重。以下提供JAVA原始碼:

import java.util.Scanner;                                                 //include<stdio.h>

public class A20240107 {                                            //不用

public static void main(String[] args) {                         //int main(){

int n,a,a1=0,a2=0,b,b1=0,b2=0,c,c1=0,c2=0,i;

Scanner sc = new Scanner(System.in);                      //scanf("%d",&n);

n = sc.nextInt();

for(i=0;i<n;i++)

{

a= sc.nextInt();                                                      //scanf("%d",&a,&b);

b = sc.nextInt();

c=a*a+b*b;
if(c1<c)

{

c2=c1;

a2=a1;

b2=b1;

c1=c;

a1=a;

b1=b;

}

else if(c2<c)

{

c2=c;

a2=a;

b2=b;

}

}

System.out.println(a2+" "+b2);                                    //printf("%d %d\n",a2,b2);

 }}                                                                                 //return 0;}

 
ZeroJudge Forum