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

华为机考-手拍球游戏

【手拍手计算次数和总数】游戏规则:左手和右手拍球初始数为0,首先左手第一次拍球数1下,右手拍球1下,接下来左手在拍球时是上一次左手+上一次右手的总和,右手也是上一次左手+上一次右手拍球的总和,最后拍球总数必须等于输入的拍球总和,并按规定输出。

现给定一个拍球总数,和最后输出时要打印的哪只手拍过的所有次数。每超过10 个元素,请换行输出。

输入描述:

输入为一行,拍球总数+最后打印某只手拍球的所有数量,1<= 拍球总数<=5000

输出描述:

某只手的拍的次数+某只手的拍球的所有数量

 实例1:                                                                                                                                             

输入:

150,left hand

输出:

now is 11 times by left hand 
1 2 5 13 34 7

 实例2:                                                                                                                                             

输入:

100,right hand

输出:

now is 10 times by right hand 
1 3 8 21 12

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.junit.jupiter.api.Test;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;public class testOk {@Testpublic static void main(String[] args) {Scanner in = new Scanner(System.in);String s = in.nextLine();String[] split = s.split(",");// 计算Integer arriveCount = Integer.parseInt(split[0]);Integer countPaiJi = 0;Integer leftActualCount = 0;Integer rightActualCount = 0;Integer actualSumCount = 0;ArrayList<Integer> leftList = new ArrayList<>();ArrayList<Integer> rightList = new ArrayList<>();while (arriveCount.compareTo(actualSumCount) != 0) {countPaiJi = countPaiJi + 1;Integer cuurentCount = (leftActualCount + rightActualCount) - 0 == 0 ? 1 : (leftActualCount + rightActualCount);Integer virSumCount = actualSumCount + cuurentCount;if (virSumCount > arriveCount) {cuurentCount = arriveCount - actualSumCount;}if (countPaiJi % 2 == 0) {rightActualCount = cuurentCount;rightList.add(cuurentCount);} else {leftActualCount = cuurentCount;leftList.add(cuurentCount);}actualSumCount = actualSumCount + cuurentCount;}// 输出String beforeMsgString = "now is ";String endMsgString;ArrayList<Integer> responseList;if (split[1].contains("left")) {responseList = leftList;endMsgString = " times by left hand ";} else {responseList = rightList;endMsgString = " times by right hand ";}List<List<Integer>> partitionList = ListUtils.partition(responseList, 10);System.out.println(beforeMsgString + countPaiJi + endMsgString);if (CollectionUtils.isEmpty(partitionList)) {System.out.println("0");}for (List<Integer> integers : partitionList) {String collect = integers.stream().map(String::valueOf).collect(Collectors.joining(" "));System.out.println(collect);}}}

http://www.lryc.cn/news/274376.html

相关文章:

  • 【线上问题】两台服务器的时间不一致导致jwt解析错误
  • 58.网游逆向分析与插件开发-游戏增加自动化助手接口-游戏菜单文字资源读取的逆向分析
  • Vue-2、初识Vue
  • 机器学习项目标记图像数据 - 安装LabelImg及功能介绍
  • 12.15 log 122.买卖股票的最佳时机 II,55. 跳跃游戏
  • Redis - 挖矿病毒 db0 库 backup 反复出现解决方案
  • LiveGBS流媒体平台GB/T28181常见问题-国标编号是什么设备编号和通道国标编号标记唯一的摄像头|视频|镜头通道
  • Unity ShaderGraph 技能冷却转圈效果
  • C++上位软件通过Snap7开源库访问西门子S7-1200/S7-1500数据块的方法
  • 如何正确安装Axure插件?详细步骤分享
  • [SwiftUI]工程最低适配iOS13
  • MyBatis-Plus框架学习笔记
  • 【Java】——期末复习题题库(六)
  • 【水文】实现四则运算的简易计算器
  • 计算机毕业设计-----ssm+mysql实现的JavaWeb酒店管理系统
  • 安防监控EasyCVR视频融合/汇聚平台大华热成像摄像机智能告警上报配置步骤
  • 关于“Python”的核心知识点整理大全64
  • Docker overlay2文件busy,容器不能删除问题解决
  • 栈的数据结构实验报告
  • ValueError: Could not find a backend to open path with iomode `wI` 解决
  • 小白入门基础 - spring Boot 入门
  • 探索Elasticsearch内存应用的关键因素
  • 关于简单的数据可视化
  • 透明OLED屏价格:影响因素与市场趋势
  • C++ 释放指针
  • 三数之和【双指针】
  • http 503 错误
  • MATLAB - MPC - 优化问题(Optimization Problem)
  • 机器学习中的概念 张量、标量、向量、矩阵等数据结构的区别
  • eureka注册列表 某服务出现多个服务实例