处女座和小姐姐

链接:https://ac.nowcoder.com/acm/contest/329/E
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述

既然昨天晚上处女座已经训练了,明天才要交作业,那今天就是平淡无奇要上课的一天了。

然而处女座也想自己的小姐姐了,可是这节课是老师安排座位,处女座坐在(1,1),而小姐姐坐在(n,m)。他们之间只能通过传纸条的方式来交流感情。对于处女座而言,他上课不想过度分心,因此并不想传纸条,只在那里趁机折千纸鹤。

老师上课喜欢用"开火车"的方式让大家轮流回答问题,显然处女座作为(1,1)位,会被第一个叫起来回答,之后老师将依次叫起(2,1),(3,1), \dots .(n,1),(n,2),(n-1,2)\cdots (1,2) ,\cdots的人起来回答问题,每个人回答问题需要1秒。处女座在自己回答完以后会以每秒1个千纸鹤的速度折叠,在小姐姐开始回答问题的时候停止折叠。

处女座想知道,他这节课一共要折多少个千纸鹤?
输入描述:
输入文件包含T+1行,第一行包含一个整数T,表示用例组数。

接下来T行,每行包含两个整数n,m表示小姐姐的位置和教室的大小。
输出描述:
对于每一组用例,用一行输出一个整数,表示处女座要折的千纸鹤的个数。
示例1
输入
复制
1
3 3
输出
复制
7
备注:
2 \leq n,m \leq 1,000

思路:刚开始的时候直接就做了,没有考虑全,后来改了一下就AC了

错误代码:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T=sc.nextInt();
        while(T>0){
            int n=sc.nextInt();
            int m=sc.nextInt();
            System.out.println(n*m-2);
            T--;
        }
        sc.close();
    }
}

AC代码:

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T=sc.nextInt();
        while(T>0){
            int n=sc.nextInt();
            int m=sc.nextInt();
            if(m%2==0)
                System.out.println(n*(m-1)-1);
            else
                System.out.println(n*m-2);
            T--;
        }
        sc.close();
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42105744/article/details/87170942