首页 > 试题广场 >

小红的正整数构造

[编程题]小红的正整数构造
  • 热度指数:12688 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个闭区间 [l,r] 以及一个正整数 x
\hspace{15pt}请在区间内找到一个整数 y,满足 yx 的倍数,即 y\equiv 0\pmod{x}
\hspace{15pt}若存在多个满足条件的 y,输出任意一个;若不存在,输出 -1

输入描述:
\hspace{15pt}在一行上输入三个整数 l,r,x\left(1\leqq l\leqq r\leqq 10^2;\ 1\leqq x\leqq 10^2\right)——区间左右端点与基准倍数。


输出描述:
\hspace{15pt}若存在满足条件的整数 y,在一行上输出 y;否则输出 -1
\hspace{15pt}如果存在多个答案,可以输出任意一个,系统会自动判断其正确性。
示例1

输入

6 10 3

输出

6

说明

69 均为 3 的倍数,本题输出了 6
示例2

输入

8 9 5

输出

-1

说明

区间内不存在 5 的倍数,因此输出 -1
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int l = in.nextInt();
        int r = in.nextInt();
        int x = in.nextInt();

        for(int i=l;i<=r;i++){
            if(i%x==0){
                System.out.print(i);
                return;
            }
        }
        System.out.print(-1);
       
    }
}
发表于 2025-12-10 18:29:35 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int l = in.nextInt();
        int r = in.nextInt();
        int x = in.nextInt();
        int result = -1;
        for (int i = l; i <= r; i++) {
            if (i % x == 0) {
                result = i;
                break;
            }
        }
        System.out.print(result);
    }
}

发表于 2025-08-26 19:24:11 回复(0)
分别用start、end来接受控制台来的左右边界,用times代表倍数,初始化结果res = -1,从start遍历到end,如果 i % times == 0 说明找到目标值,res更新为i,退出循环。若在区间没找到,也输出res(-1)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int start = in.nextInt();
            int end = in.nextInt();
            int times = in.nextInt();
            int res = -1;
            for (int i = start; i <= end; i++){
                if (i % times == 0){
                    res = i;
                    break;
                }
            }
            System.out.println(res);
        }
    }
}

发表于 2025-07-18 19:57:57 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int l = in.nextInt();
        int r = in.nextInt();
        int x = in.nextInt();

        for (int i = l; i <= r; i++) {
            if (i % x == 0 ) {
                System.out.println(i);
            }
            break;
        }

    }
}
发表于 2025-03-18 22:16:41 回复(1)