平时编程题练习

第一题

package com.company;

import java.util.Scanner;

/**
 * [编程题]画板
 * 时间限制:1秒
 *
 * 空间限制:65536K
 *2018年360公司春招面试题目及答案
 * 沫璃有一个画板,画板可以抽象成有100行每行100个像素点的正方形。沫璃在画板上画画,她一共画了n次,每次将一个矩形涂上颜色。沫璃想知道一共有多少个像素点被她涂过颜色。若一个像素点被涂了k次,那么认为有k个像素点被涂过颜色。
 *
 *
 * 输入描述:
 * 第一行一个数T(T<=100),表示数据组数。
 *
 * 对于每组数据,第一行一个整数n , (1<=n<=100)
 *
 * 接下来n行,每行4个整数x1, y1,
 * x2, y2 (1 <= x1 <= x2 <= 100, 1 <= y1 <= y2 <= 100),表示矩形的两个对角所对应的像素点的坐标。
 *
 * 输出描述:
 * 对于每组数据,输出一行,表示沫璃一共涂了多少个像素点。
 *
 * 输入例子1:
 * 2
 * 2
 * 1 1 2 3
 * 2 2 3 3
 * 2
 * 1 1 3 3
 * 1 1 3 3
 *
 * 输出例子1:
 * 10
 * 18
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入数据组数:");
        int num=sc.nextInt();
        int [] total=new int[num];
        for (int i=1;i<=num;i++){
            System.out.println("请输入第"+i+"组数据的行数");
            int currentRowNum=sc.nextInt();
            for (int j=1;j<=currentRowNum;j++){
                System.out.println("请输入第"+j+"行的第一个坐标");
                System.out.println("请输入横坐标");
                int x1=sc.nextInt();
                System.out.println("请输入纵坐标");
                int y1=sc.nextInt();
                System.out.println("您输入的坐标为("+x1+","+y1+")");
                System.out.println("请输入第"+j+"行的第二个坐标");
                System.out.println("请输入横坐标");
                int x2=sc.nextInt();
                System.out.println("请输入纵坐标");
                int y2=sc.nextInt();
                System.out.println("您输入的坐标为("+x2+","+y2+")");
                total[i-1]=total[i-1]+((x2-x1)+1)*((y2-y1)+1);
            }
        }
        for (int a=0;a<num;a++){
            System.out.println(total[a]);
        }
        sc.close();
    }
}

第二题

package com.company;

/**
 * @author cs
 * @create 2019-08-07-11:08
 */

import java.util.Scanner;

/**
 * [编程题]交易
 * 时间限制:1秒
 *
 * 空间限制:65536K
 *2018年360公司春招面试题目及答案
 * 沫璃发起了一场交易,她将她的5个朋友聚在一起准备进行一场交易。交易开始前,大家各有b(b>0)个硬币,交易后,每个人有ai个硬币。由于硬币不方面携带,在交易过程中可能会丢失。现在沫璃想知道是否一定丢失硬币,或者在可能没有丢失硬币的情况下,交易前每个人的硬币数b。沫璃只是组织者,不参与交易。
 *
 *
 * 输入描述:
 * 第一行一个数T(T<=100),表示数据组数。
 *
 * 对于每组数据,第一行5个整数,第i个整数ai表示交易后第i个朋友的硬币数(0<=ai<=100)
 *
 * 输出描述:
 * 对于每组数据,输出一行,若一定丢失硬币输出-1,若可能没有丢失硬币,输出b。
 *
 * 输入例子1:
 * 2
 * 2 5 4 0 4
 * 4 5 9 2 1
 *
 * 输出例子1:
 * 3
 * -1
 */
public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入数据组数:");
        int num=scanner.nextInt();
        int []average=new int[num];
        String str=scanner.nextLine();
        for (int i=1;i<=num;i++){
            System.out.println("请输入第"+i+"组数据的五个数,以空格隔开");
            str = scanner.nextLine();
            String[] split = str.split(" ");
            int sum=0;
            for (int j=0;j<=split.length-1;j++){
                int arry = Integer.parseInt(split[j]);
                sum=sum+arry;
               // System.out.println(split[j]);
            }
            if (sum%5==0){
                average[i-1]=sum/5;
            }else {
                average[i-1]=-1;
            }
        }
        for (int a=0;a<average.length;a++){
           System.out.println(average[a]);
        }
        scanner.close();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值