1. 程式人生 > >算法測試例子特殊輸入形式

算法測試例子特殊輸入形式

tint 包含 amp 平臺 port asn int() 答案 return

寫算法時,總會遇到這種測試例子

1、得到一個數z時,結束輸入測試數據,常用的一般為0,-1

例如:

輸入

輸入包括多組數據。以n等於0結束
每組數據中:
第一行為一個整數n,表示整數的數量。
第二行輸入n個整數。
所有輸入的數均小於100000。

 

輸出

輸出答案。

 

樣例輸入

5
1 2 3 3 2
7
1 2 3 4 5 5 6
0
 

樣例輸出

1
5

  則可以這樣實現:

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
 
        while(true){
            int n =sc.nextInt();
            if(n == 0){
                break;
            }
             
            //...這裏為單組測試數據
        }
         
    }
}

  

2、以EOF結束

輸入

輸入包含多組數據,以EOF結束,

每組首先輸入三個正整數,n,m,k,其中(n,m,k<100)

後輸入n個數表示每種零食的價格ai(ai<1000)

輸出

輸出一個正整數,表示最小花費

樣例輸入

4 3 2
1 2 3 4
7 3 8
1 2 3 4 5 6 7

樣例輸出

8
21

Java中實現以EOF結束:

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
         
        while(sc.hasNext()) {
            //...這裏為單組測試數據
        }
        sc.close();
    }
}

  c或c++中實現以EOF結束:

#include <stdio.h>
int main(){
    int n;
    while (scanf("%d",&n)!=EOF){ //循環讀入n,直到文件末位
        //...這裏是單組測試數據
    }
    return 0;
}

  

在windows平臺,一般模擬EOF的輸入是在一個新行的開頭輸入ctrl + z

在unix環境下,是在一個新行的開始出輸入ctrl + D

在MacOS下,需要在一個新行的開始輸入control+Q,再control + D

算法測試例子特殊輸入形式