华为OD机考-数字游戏-逻辑分析(JAVA 2025B卷)

Source

在这里插入图片描述
在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;

public class DemoTest11 {
    
      

    public static void main(String[] args) {
    
      
        Scanner sc = new Scanner(System.in);
        while  (sc.hasNext()) {
    
      
            int[] arr0 = Arrays.stream(sc.nextLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();
            int target = arr0[1];
            int[] arr = Arrays.stream(sc.nextLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();
            System.out.println(doProcess(arr,target));
        }
    }

    private static int doProcess(int[] arr,int target){
    
      
        int i=0,j=0,sum =0;
        while(i<arr.length){
    
      //i越界,结束
            sum += arr[j];
            if(sum % target == 0){
    
      
                return 1;
            }
            j++;
            if(j>=arr.length){
    
      //j越界,i右移,sum清空
                i++;
                j=i;
                sum = 0;
            }
        }
        return 0;
    }
}