当前位置: 首页 > article >正文

Java练习题2021-4

"某游戏公司设计了一个奖励活动,给N个用户(1≤N≤10^7)连续编号为1到N,依据用户的编号S发放奖励。

发放奖励规则为:
公司随机设定三个非零正整数x,y,z。
如果S同时是x、y的倍数,奖励2张卡片;
如果S同时是y、z的倍数,奖励4张卡片;
如果S同时是x、z的倍数,奖励8张卡片;
如果S同时是x,y,z的倍数奖励10张卡片;
其他奖励1张卡片;
以上奖励不能同时享受。满足多个奖励条件时,以最高奖励为准。

求任意连续的L个用户,使得这L个用户得到的奖励总和最多,输出奖励总和的值。


输入说明:第一行,输入N,L,以空格隔开;(1≤L≤N≤10^7)
第二行,输入x,y,z,以空格隔开;(1≤x,y,z≤L)
输出说明:符合条件的连续L个用户的奖励总和的最大值。
输入样例:40 7
3 5 2
输出样例:24"

注释代码过多可以自行删除

package _2021Ti;

import javax.persistence.criteria.CriteriaBuilder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        List<Integer> scoreList = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        // 即代表N个用户 也代表 编号的结束   , 和L
        String N_L = sc.nextLine();
        String[] s1 = N_L.split(" ");



        // x , y , z
        String xyz = sc.nextLine();
        String[] s2 = xyz.split(" ");

        //例如 N = 20 七个用户 编号就是 1-20
        // 假设 设定  3  5  2
        // 奖励根据 用户编号是否为 xyz 的倍数
        //倍数就是 对几倍求余 % ==0
        //假设L = 7 就是输出任意连续七个用户
        // 这七个用户奖励和是最多的
        // 输出奖励和总是

     //   int jiangLihe = 0;



//        for (int i = 1 ; i <= Integer.valueOf(s1[0]) ; i++){
//            //找出最牛的一组编号 都是给 10张牌的
//            if (i % Integer.valueOf(s2[0]) == 0 && i % Integer.valueOf(s2[1]) == 0 && i % Integer.valueOf(s2[2]) == 0 ){
//                List<Integer> firstList = new ArrayList<>();
//                firstList.add(i);
//            }
//            //找出第二牛的 给8个牌 x 和 z 倍数
//            if (i % Integer.valueOf(s2[0]) == 0 && i % Integer.valueOf(s2[2]) == 0 ){
//                List<Integer> secondList = new ArrayList<>();
//                secondList.add(i);
//            }
//            // 第三 y z 给 4 牌
//            if (i % Integer.valueOf(s2[1]) == 0 && i % Integer.valueOf(s2[2]) == 0){
//                List<Integer> thirdList = new ArrayList<>();
//                thirdList.add(i);
//            }
//
//            // 第四大 x y 的倍数
//            if (i % Integer.valueOf(s2[0]) == 0 && i % Integer.valueOf(s2[1]) == 0){
//                List<Integer> fourthList = new ArrayList<>();
//                fourthList.add(i);
//            }
//        }

        // 想循环遍历 因为是连续的L个用户
        //外层循环为判断总循环次数 假设药连续的L =3个用户  123 234 345 456 就会有这几种
        // 假设输入 40 用户 7 个一组
        //              33                  40 - 7 = 33
            for (int j = 1; j <= Integer.parseInt(s1[0]) - (Integer.parseInt(s1[1]) -1) ; j++) {
                //总分
                int score = 0;
               // 控制次数
                int i=1;
                // 控制开始数字
                int s = j;
                //这层想 输出循环编号
                //                      7
                    while( i <= Integer.parseInt(s1[1])){

                      //  System.out.print(s);

                        if (s % Integer.valueOf(s2[0]) == 0 && s % Integer.valueOf(s2[1]) == 0 && s % Integer.valueOf(s2[2]) == 0 ) {
                            score += 10;
                        } else  if (s % Integer.valueOf(s2[0]) == 0 && s % Integer.valueOf(s2[2]) == 0 ){
                            score += 8;
                        }else if (s % Integer.valueOf(s2[1]) == 0 && s % Integer.valueOf(s2[2]) == 0){
                            score += 4;
                        }else if (s % Integer.valueOf(s2[0]) == 0 && s % Integer.valueOf(s2[1]) == 0){
                            score +=2;
                        }else {
                            score += 1 ;
                        }
                        s++;
                        i++;
                    }
                    scoreList.add(score);
              //  System.out.println();
            }
        Collections.sort(scoreList);


        System.out.println(scoreList.get(scoreList.size() -1));


    }
}


http://www.kler.cn/a/106227.html

相关文章:

  • SQLite 和 MySQL语法区别
  • RT-Thread 星火1号学习笔记
  • LeetCode题解:18.四数之和【Python题解超详细】,三数之和 vs. 四数之和
  • SpringBoot集成itext导出PDF
  • 《生成式 AI》课程 第3講 CODE TASK 任务3:自定义任务的机器人
  • 智能化运维与AI/ML辅助决策:实现自动化与预测优化
  • C#开发的IEnumerable接口
  • 将安全作为首要目标 — Venus 的现状和前景展望
  • 【c++】打家劫舍(动态规划)
  • 嵌入式实时操作系统的设计与开发(信号量学习)
  • 模型调参优化
  • 一文拿捏内网穿透利器之frp(反向代理软件相关)
  • 【linux】安装rpmrebuild
  • CDR和AI哪个软件更好用?
  • 多线程---认识线程
  • 使用 Visual Studio Code 编写 TypeScript程序
  • 内存-虚拟地址到物理内存地址转换
  • 【数据结构初阶】顺序表和链表(1)
  • fl studio2023最新版本如何设置中文?
  • 多线程线程池
  • Git总结
  • 使用 jdbc 技术升级水果库存系统(后端最终版本,不包含前端)
  • ubuntu server 安装失败
  • ​iOS安全加固方法及实现
  • kubernates 集群实战-安装K3s集群
  • pdf误删恢复如何恢复?分享4种恢复方法!