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