筆試的時候一般都需要自己寫輸入輸出,為了盡可能減少因為格式問題而爆0這種委屈之事,我在此以牛客網OJ為例總結了常見的6種典型情況輸入描述的模板。希望可以幫助到廣大考友把更多的精力放在解題思路上。邏輯代碼寫到while循環里
1. 輸入是已知大小的二維數組
輸入描述第一行是一個正整數n,表示二維數組有n行n列。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();//定義需要的階層數n
int[][]array=new int[n][n];//定義一個n*n的數組array
System.out.println("輸入數組的各個元素:");
for(int i=0;i<n;i++) {
for (int j = 0; j < n; j++)
array[i][j] = scan.nextInt();
}
}
2. 輸入的每組測試數據有多行的情況
輸入描述:第一行是一個正整數T,表示有T組測試數據。
之后每組數據有三行,第一行為n(1<=n<=10000),第二行有n個正整數,第三行也有n個正整數;都在整數范圍內。
輸入:
3
3
1 2 3
1 2 3
4
4 3 2 1
1 1 1 1
2
1 2
10 20
輸出:
7
4
30
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
while(T>0){
T--;//為了保證輸出的第一行會換行
//a和b分別放每組測試用例的第二行和第三行
int[] a = new int[10000];
int[] b = new int[10000];
int n = in.nextInt();
for(int i=1; i<=n; i++){
a[i] = in.nextInt();
}
for(int i=1 ;i<=n; i++){
b[i] = in.nextInt();
}
}//將輸入帶到function()方法里去運算
System.out.println(function(a,b))
}
3. 每行測試數據的數量在該行開頭給出
輸入描述:第一行是一個正整數T,表示有T組測試數據。
之后每組數據第一個數為N(1<=n<=10000),緊接着有N個正整數;(注意在一行)
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int T = input.nextInt();
for(int i=0; i<T; i++) {
int N = input.nextInt();
String s = input.next();//注意用的是next(),不換行
char[] ch = new char[10000];
for (int j=0; j<N; j++) {
ch[j] = s.charAt(j);
}
System.out.println(function(ch));
}
}
4. 測試數據組數未知且結果需要取模的情況
輸入描述:每行輸入兩個數分別為 N 和 L ,直到N 和 L為止;結果對1000000007取模
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Long mod = 1000000007l;
while (input.hasNext()) {
Long n = input.nextLong();
Long l = input.nextLong();
if (n == 0 && l == 0) {
break;
}//將輸入帶到function()方法里去運算
System.out.println(function(n,l)%mod);
}
}
5. 測試數據組數未知且結果需要取模的情況
輸入描述:
輸入數據有多組, 每行表示一組輸入數據。
每行不定有n個整數,空格隔開。(1 <= n <= 100)。
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine()){
String [] s=sc.nextLine().split(" ");
int sum=0;
for(int i=0;i<s.length;i++){
sum=sum+Integer.parseInt(s[i]);
}
System.out.println(sum);
}
}
6.判斷子串是否與主串的某段相等
public class StringExist {
public static void main(String [] args){
//輸入主串和子串
Scanner input = new Scanner(System.in);
String mainString = input.nextLine();
String subString = input.nextLine();
//判斷方法調用
boolean result = jugdeExist(mainString,subString);
System.out.println(result);
}
//判斷子串是否與主串的某段相等
public static boolean jugdeExist(String mainString,String subString){
if (null== mainString)return false;
String[] forArray = mainString.split(",");
for (String Id : forArray) {
if(Id.equals(subString))
return true;
}
return false;
}
}
更多字符串的輸入輸出練習在牛客網上有練習場,推薦給大家
OJ在線編程常見輸入輸出練習場
如果對你有幫助的話來個贊唄,如果有什么問題歡迎交流,我會更努力地分享高質內容給大家。考試順利~~