NiukeプログラミングOJの典型的な入力Javaテンプレート

筆記テストでは、通常、独自の入力と出力を作成する必要があります。フォーマットの問題によって生じる不満を最小限に抑えるために、例としてNiuke OJを使用して6つの一般的な入力記述テンプレートを要約します。大多数の受験者が問題解決に集中できるようになることを願っています。

1.入力は既知のサイズの2次元配列です

入力の説明の最初の行は正の整数nで、2次元配列が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個あることを示します。
その後、各データグループには3つの行があります。最初の行はn(1 <= n <= 10000)、2番目の行はn個の正の整数、3番目の行は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個の正の整数が続きます(1行に注意)。

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の2つの数値を入力します。結果は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;
    }
}

Niuke.comでより多くの文字列入出力演習が利用可能であり、誰にでも推奨されています
OJオンラインプログラミングの一般的な入出力演習フィールド

それがあなたを助けるなら、私に褒め言葉をください、試験はうまくいきます~~

元の記事を27件公開しました 賞賛されました4 訪問2178

おすすめ

転載: blog.csdn.net/smile001isme/article/details/105470699