算法測試例子特殊輸入形式
阿新 • • 發佈:2019-03-24
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
算法測試例子特殊輸入形式