首页 > 试题广场 >

小红的正整数构造

[编程题]小红的正整数构造
  • 热度指数: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
l,r,x = map(int,input().split( ))
result = -1
for i in range(l,r+1):
    if i % x == 0:
      result = i
print(result)

发表于 2025-03-03 15:10:21 回复(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)
l,r,x=map(int,input().split())
for i in range(l,r+1):
    if i% x==0:
        print(i)
        break
    elif (i % x) != 0 and i ==r:
        print(-1)
        break
发表于 2025-08-12 15:35:52 回复(0)
package main

import (
    "fmt"
)

func main() {
    var l, r, x int
    fmt.Scan(&l,&r,&x)
    v := -1
    if l%x == 0 {
        v = l
    } else {
        v = (l/x + 1) * x
        if v > r {
            v = -1
        }
    }
    fmt.Println(v)

}


发表于 2025-05-13 17:36:39 回复(0)
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 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            int x = in.nextInt();
            int m = a % x; //余数
            if (m == 0) { //余数为0直接输出
                System.out.println(a);
            }else if (a + x -m <= b) { //补齐如果小于边界,找到
                System.out.println(a + x -m);
            } else {
                System.out.println(-1);
            }
        }
    }
}
发表于 2025-12-02 16:15:56 回复(0)
#include <iostream>
using namespace std;

int main()
{
    int l,r,x,y;
    cin>>l>>r>>x;
    y=((l+x-1)/x)*x;
    cout<<(y<=r?y:-1);
    return 0;
}
发表于 2025-11-15 16:52:53 回复(0)
a,b,c = map(int,input().split())
n = 0
for i in range(a,b+1):
    if i%c == 0:
        n = i
        break
if n == 0:
    print(-1)
else:
    print(n)

发表于 2025-10-25 13:20:52 回复(0)
import random
l,r,x=map(int,(input().split(" ")))
my_list=[]
flag=None for i in range(l,r+1): if i%x==0:
        my_list.append(i)
        flag=1 if flag!=1: print(-1) else: print(random.choice(my_list))
发表于 2025-09-29 15:55:10 回复(0)
#include <stdio.h>

int main() {
    int a[3], b=0;
    for(int i=0;i<3;i++)
        scanf("%d",&a[i]);
    for(int i=a[0];i<=a[1];i++){
        if(i%a[2]==0){
            printf("%d",i);
            b++;
            break;
        }
    }
    if(b==0)
        printf("-1");
   
    return 0;
}
发表于 2025-09-26 10:55:44 回复(0)
#include <iostream>
using namespace std;

int main() {
    int l,r,x;
    cin>>l>>r>>x;
    if(l%x == 0) cout<<l;
    else {
        int frac = l/x + 1;
        if(frac*x <= r) cout<<frac*x;
        else cout<<-1;
    }
}

发表于 2025-09-23 11:49:06 回复(0)
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int l = scanner.nextInt();
        int r = scanner.nextInt();
        int x = scanner.nextInt();

        List<Integer> multiples = new ArrayList<>();
        // 遍历区间,收集所有x的倍数
        for (int y = l; y <= r; y++) {
            if (y % x == 0) {
                multiples.add(y);
            }
        }

        if (multiples.isEmpty()) {
            System.out.println(-1);
        } else {
            // 生成随机索引
            Random random = new Random();
            int randomIndex = random.nextInt(multiples.size());
            System.out.println(multiples.get(randomIndex));
        }

        scanner.close();
    }
}
发表于 2025-09-17 14:34:13 回复(0)
s=input().split()
s1=list(map(int,s))
l=s1[0]
r=s1[1]
x=s1[2]
a=[]
for y in range(l,r+1):
    if y % x == 0:
        print(y)
        break
    if y % x!= 0:
        a.append(y)
        if len(a)==r+1-l:
            print('-1')

发表于 2025-09-12 13:27:54 回复(0)
l,r,x = map(int,input().split())
if (l+x-l%x)<=r:
    print(l+x-l%x)
else:
    print(-1)
发表于 2025-08-24 15:55:32 回复(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)
#include <stdio.h>

int main() {
    int l,r,x,i;
    scanf("%d %d %d",&l,&r,&x);
    for(i=l;i<=r;i++)
    {
        int t=i;
        if(t%x==0)
        {
            printf("%d",t);
            return 0;
        }
    }
    printf("-1");
    return 0;
}
发表于 2025-07-16 22:03:53 回复(0)
#include <iostream>
using namespace std;
//C++语言
int main() {
    int a, b, c;
    cin >> a >> b >> c;
    for (; a <= b; ++a) {
        if(a % c == 0){
            cout << a;
            break;
        }
        if(a == b) {
            cout << -1;
        }
   
    }
}
// 64 位输出请用 printf("%lld")
发表于 2025-07-14 18:45:53 回复(0)
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    while ((line = await readline())) {
        let tokens = line.split(" ");
        let a = parseInt(tokens[0]);
        let b = parseInt(tokens[1]);
        let c = parseInt(tokens[2]);
        let outstr = 0;

        for (let i = a; i <= b; i++) {
            if (i % c === 0) {
                outstr = i;
                break;
            }
        }
        !outstr ? console.log(-1) : console.log(outstr);
    }
})();

发表于 2025-07-14 16:56:06 回复(0)
l,r,x = map(int,input().split( ))
for y in range(l,r+1):
    if y%x == 0:
        print (y)
        break
else: print('-1')
发表于 2025-07-12 03:55:08 回复(0)
import sys
l,r,x=map(int,input().split())
i=0
y=x
for y in range(l,r+1):
    y=x*i
    if y<=r+1 and y>=l:
        print(y)
        sys.exit()
    else:
        i+=1
print(-1)

发表于 2025-07-11 17:58:43 回复(0)