首页 > 试题广场 >

小美的外卖订单编号

[编程题]小美的外卖订单编号
  • 热度指数:2647 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt} 美团商家的订单编号初始值为 1 。每当发起一笔新订单时,编号自动加 1 。为了防止编号无限增大,商家设置了一个编号上限 m :一旦当前订单编号加 1 后大于 m ,下一个订单的编号将重新从 1 开始。
\hspace{15pt} 给定 q 次询问,第 i 次询问给出一对整数 \left(m_i,x_i\right) ,请你计算在编号上限为 m_i 的情况下,第 x_i 个订单的编号是多少。

输入描述:
\hspace{15pt} 输入的第一行包含一个整数 q\left(1\leqq q\leqq 5\times 10^4\right) ,表示询问的数量。 
\hspace{15pt} 接下来 q 行,第 i 行包含两个整数 m_i,x_i\left(1\leqq m_i,x_i\leqq 10^9\right) ——本次询问的参数。


输出描述:
\hspace{15pt} 对于每个询问,输出一行一个整数,表示答案。
示例1

输入

4
2 3
5 17
8 2
4 4

输出

1
2
2
4

说明

\hspace{15pt} 以第一组询问 \left(m,x\right)=\left(2,3\right) 为例: 
\hspace{23pt}\bullet\, 订单编号序列为 1,2,1,2,\dots ,第 3 个编号为 1 ,故输出 1
\hspace{15pt} 其余询问均可按相同规则得到答案。
数学。
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int q = in.nextInt();
        while (q-- != 0) {
            int m = in.nextInt(), x = in.nextInt();
            System.out.println((x - 1) % m + 1);
        }
    }
}


发表于 2023-12-26 21:01:18 回复(0)