#16255: Java 邏輯問題,麻煩高手解惑!


zzxxccvv48 (阿軒)

學校 : 不指定學校
編號 : 3390
來源 : [112.78.87.126]
最後登入時間 :
2021-03-08 21:18:54
a005. Eva 的回家作業 -- POJ | From: [36.239.247.36] | 發表日期 : 2018-12-12 23:23

原本想這樣寫:

import java.util.Scanner;
public class a005 {
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        
        while (sc.hasNext())
        {
            int A = sc.nextInt();
            int B = sc.nextInt();
            int C = sc.nextInt();
            int D = sc.nextInt();
            
            if (B-A == D-C)
            {
            int X= B-A ;
            String a = "%d %d %d %d %d \n";
            System.out.printf(a, A, B, C, D, D+X);      
          }
          
          else if(B/A == D/C)
          {
          int Y= D/C ;
          String a = "%d %d %d %d %d \n";
            System.out.printf(a, A, B, C, D, D*Y);      
          }
        }
    }
}

 

--------------------------------------------------------------

檢測RE(code:1)

換這樣寫

--------------------------------------------------------------

import java.util.Scanner;
public class a005 {
    public static void main(String[] args)
    {
        int t;
        Scanner sc = new Scanner(System.in);
        t =sc.nextInt();
        while (t != 0)
        {
            int A = sc.nextInt();
            int B = sc.nextInt();
            int C = sc.nextInt();
            int D = sc.nextInt();
            
            if (B-A == D-C)
            {
            int X= B-A ;
            String a = "%d %d %d %d %d \n";
            System.out.printf(a, A, B, C, D, D+X);      
          }
          
          else
          {
          int Y= D/C ;
          String a = "%d %d %d %d %d \n";
            System.out.printf(a, A, B, C, D, D*Y);      
          }         
        }
    }
}

-----------------------------------------------------------

也是RE

後來尾巴加了 t-- ,就過了,不懂最後這個的定義與用意在哪邊?

 

如果用最上面的寫法,要如何寫才有t--的效果?

如下↓

-----------------------------------------------------------

import java.util.Scanner;
public class a005 {
    public static void main(String[] args)
    {
        int t;
        Scanner sc = new Scanner(System.in);
        t =sc.nextInt();
        while (t != 0)
        {
            int A = sc.nextInt();
            int B = sc.nextInt();
            int C = sc.nextInt();
            int D = sc.nextInt();
            
            if (B-A == D-C)
            {
            int X= B-A ;
            String a = "%d %d %d %d %d \n";
            System.out.printf(a, A, B, C, D, D+X);      
          }
          
          else
          {
          int Y= D/C ;
          String a = "%d %d %d %d %d \n";
            System.out.printf(a, A, B, C, D, D*Y);      
          }
          t--;
        }
    }
}

 

--------------------------------------------------------------------------

麻煩各位高手解惑了!

 
#16257: Re:Java 邏輯問題,麻煩高手解惑!


a0970580085@gmail.com (/)

學校 : 義守大學
編號 : 74647
來源 : [125.229.235.114]
最後登入時間 :
2023-08-30 17:36:04
a005. Eva 的回家作業 -- POJ | From: [61.221.174.229] | 發表日期 : 2018-12-13 10:00

 

 

第一段程式碼:你少讀一個測資 t(然後要用 t 控制讀取測資的行數),後面再讀測資的時候就錯了。

第二、三段程式碼:沒有 t-- 會跑不出迴圈。

 

 

 

參考

    
JAVA
 
 
#16259: Re:Java 邏輯問題,麻煩高手解惑!


a0970580085@gmail.com (/)

學校 : 義守大學
編號 : 74647
來源 : [125.229.235.114]
最後登入時間 :
2023-08-30 17:36:04
a005. Eva 的回家作業 -- POJ | From: [61.221.174.229] | 發表日期 : 2018-12-13 10:02

 

 

第一段程式碼:你少讀一個測資 t(然後要用 t 控制讀取測資的行數),後面再讀測資的時候就錯了。

第二、三段程式碼:沒有 t-- 會跑不出迴圈。

 

 

 

參考

    
JAVA
 



上面程式碼打不開我貼下面,不懂再看。

import java.util.Scanner;

public class aa {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (sc.hasNext()) {
            int t = sc.nextInt();
            for (int i = 0; i < t; ++i) {
                int A = sc.nextInt();
                int B = sc.nextInt();
                int C = sc.nextInt();
                int D = sc.nextInt();

                if (B - A == D - C) {
                    int X = B - A;
                    String a = "%d %d %d %d %d \n";
                    System.out.printf(a, A, B, C, D, D + X);
                } else if (B / A == D / C) {
                    int Y = D / C;
                    String a = "%d %d %d %d %d \n";
                    System.out.printf(a, A, B, C, D, D * Y);
                }
            }
        }
    }
}
 
#16290: Re:Java 邏輯問題,麻煩高手解惑!


zzxxccvv48 (阿軒)

學校 : 不指定學校
編號 : 3390
來源 : [112.78.87.126]
最後登入時間 :
2021-03-08 21:18:54
a005. Eva 的回家作業 -- POJ | From: [218.164.166.130] | 發表日期 : 2018-12-16 01:19

 

 

第一段程式碼:你少讀一個測資 t(然後要用 t 控制讀取測資的行數),後面再讀測資的時候就錯了。

第二、三段程式碼:沒有 t-- 會跑不出迴圈。

 

 

 

參考

    
JAVA
 



上面程式碼打不開我貼下面,不懂再看。

import java.util.Scanner;

public class aa {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (sc.hasNext()) {
            int t = sc.nextInt();
            for (int i = 0; i < t; ++i) {
                int A = sc.nextInt();
                int B = sc.nextInt();
                int C = sc.nextInt();
                int D = sc.nextInt();

                if (B - A == D - C) {
                    int X = B - A;
                    String a = "%d %d %d %d %d \n";
                    System.out.printf(a, A, B, C, D, D + X);
                } else if (B / A == D / C) {
                    int Y = D / C;
                    String a = "%d %d %d %d %d \n";
                    System.out.printf(a, A, B, C, D, D * Y);
                }
            }
        }
    }
}


感謝解惑,剛出新手村感謝指導!

 
ZeroJudge Forum