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

网站开发项目视频教程电商购物网站开发需求分析

网站开发项目视频教程,电商购物网站开发需求分析,青岛市公共资源交易网,wordpress是什么题目描述 喊7是一个传统的聚会游戏。N个人围成一圈,按顺时针从1到N编号。编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1。但是,当将要喊出来的数字是7的倍数或者数字本身含有7时,不能把这个数字直接喊出来&#x…

题目描述

喊7是一个传统的聚会游戏。N个人围成一圈,按顺时针从1到N编号。编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1。但是,当将要喊出来的数字是7的倍数或者数字本身含有7时,不能把这个数字直接喊出来,而是要喊“过”。假定玩这个游戏的N个人都没有失误地在正确的时机喊了“过”,现在给定一个长度为N的数组,存储了打乱顺序的每个人喊“过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人喊“过”的次数。


输入输出

  • 输入

    • 一行,为空格分隔的喊“过”的次数,注意K(即喊到的最大数字,但题目中并不直接给出K)不超过200,而数字的个数即为N。
  • 输出

    • 一行,为顺序正确的喊“过”的次数,也由空格分隔。

示例

  • 示例1

    • 输入:0 1 0
    • 输出:1 0 0
  • 示例2

    • 输入:0 0 0 2 1
    • 输出:0 2 0 1 0

解题思路

  1. 读取输入:首先,读取输入的喊“过”的次数,并将其转换为整数列表。
  2. 计算总数:计算总的喊“过”的次数,即输入数组的和。
  3. 初始化变量
    • 初始化一个结果列表,用于存储每个人喊“过”的正确次数,长度与输入数组相同。
    • 初始化当前数字和当前玩家索引。
  4. 模拟喊数过程
    • 从1开始模拟喊数的过程,直到喊“过”的次数达到总数。
    • 在模拟过程中,判断当前数字是否需要喊“过”(是7的倍数或含有7)。
    • 如果需要喊“过”,则减少剩余的“过”的次数,并增加当前玩家的喊“过”次数。
    • 每喊完一个数,移动到下一个玩家(使用模运算实现循环)。
  5. 输出结果:将结果列表转换为字符串,并用空格连接后输出。

代码实现

import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Collectors;public class CallSevenReordering {public static void main(String[] args) {// 创建扫描器对象以读取输入Scanner scanner = new Scanner(System.in);// 读取输入的喊“过”次数,并转换为整数数组String[] inputArrayStr = scanner.nextLine().split(" ");int[] inputArray = new int[inputArrayStr.length];for (int i = 0; i < inputArrayStr.length; i++) {inputArray[i] = Integer.parseInt(inputArrayStr[i]);}// 计算总的“过”次数int totalOvers = Arrays.stream(inputArray).sum();// 初始化结果数组,用于存储按正确顺序的喊“过”次数int[] resultArray = new int[inputArray.length];// 初始化当前数字和当前玩家索引int currentNumber = 1;int currentIndex = 0;// 模拟喊数过程while (totalOvers > 0) {// 判断当前数字是否需要喊“过”if (currentNumber % 7 == 0 || String.valueOf(currentNumber).contains("7")) {resultArray[currentIndex]++; // 当前玩家喊“过”次数加1totalOvers--; // 剩余的“过”次数减1}// 更新当前数字和当前玩家索引currentNumber++;currentIndex = (currentIndex + 1) % inputArray.length;}// 输出结果数组System.out.print(Arrays.stream(resultArray).mapToObj(String::valueOf).collect(Collectors.joining(" ")));// 关闭扫描器scanner.close();}
}

代码解析

  1. 读取输入:使用input().split()读取输入,并将其转换为整数列表a
  2. 计算总数:使用sum(a)计算总的喊“过”的次数s
  3. 初始化变量
    • n为玩家数量,即输入数组的长度。
    • p为结果列表,初始化为长度为n的零列表。
    • i为当前数字,初始化为1。
    • j为当前玩家索引,初始化为0。
  4. 模拟喊数过程
    • 使用while循环,直到s(剩余的“过”的次数)为0。
    • 在循环中,判断当前数字i是否需要喊“过”。
      • 如果需要,则减少s并增加当前玩家的喊“过”次数p[j]
    • 每次循环结束后,数字i加1,并移动到下一个玩家(使用j = (j + 1) % n实现循环)。
  5. 输出结果:使用joinmap将结果列表p转换为字符串,并用空格连接后输出。
运行实例解析
  1. 输入:0 1 0
  2. 程序模拟喊数过程:
    • 1(不过)
    • 2(不过)
    • 3(不过)
    • 4(不过)
    • 5(不过)
    • 6(不过)
    • 7(过,当前玩家是1,但输入说1没过,所以这是给下一个玩家的,但这里模拟是为了验证总数)
    • 由于我们不知道确切的最大数,我们继续模拟直到用完所有的“过”:
      • 8(不过)
      • 9(不过,但当前玩家2应该在这里喊过,因为上一个7的倍数已经过了给2)
      • …(继续模拟,但这里我们省略中间步骤,因为我们已经知道2会喊1次过)
  3. 输出:1 0 0(表示编号1的人喊过1次,编号2和3的人没有喊过)

注意:实际的模拟过程不需要我们确切地知道喊到了哪个数字,只需要知道每个人喊“过”的次数是否正确。由于输入已经给出了这些次数,我们的模拟主要是为了验证算法的正确性。在这个例子中,输入0 1 0直接告诉我们答案应该是1 0 0

http://www.yayakq.cn/news/590247/

相关文章:

  • 电子商务网站建设作业文档摄影作品网站有哪些
  • 台州经典网站建设费用百度收录排名怎么上去
  • 福州高端网站建设公司厦门 网站建设闽icp
  • wap网站做微信小程序佛山市网站公司
  • 建设我们的网站教案营销策划策划公司
  • 天津制作网站的公司电话微信分销平台哪家好
  • thinkphp5做网站商城网站开发背景
  • 个人免费网站申请注册网站备案 个人 单位
  • 维恩图在线制作网站南京高端定制网站建设
  • 手机网站样式代码wordpress主题的网站模板
  • 陕西省建设厅执业资格注册中心网站百度推广费用报价单
  • 个人做跨境电商网站有哪些wordpress 会员购买插件
  • 局域网建网站的详细步骤河北城乡建设学校网站
  • 哈尔滨网站建设学校制作一个简单网站
  • 百度做网站多少钱一年外贸网站建设上海
  • 浙江交工宏途交通建设有限公司网站国内最佳网站建设设计
  • 网站网页设计培训机构广州软件开发工资
  • 做网站都能赚钱吗二手车网站系统
  • 网站虚拟主机空间1g多吗做视频网站收入
  • 21天网站建设实录wordpress源码安装
  • 新手做网站做那个赣州新闻联播今天回放
  • 和文化有关的吉网站建设模板南宁做网站价格
  • 西安网站建设云李空间如何安装wordpress
  • 网站续费问题怎么查网站的关键词
  • 做网站的猫腻买一个成品网站多少钱
  • 合肥网站推广胶带制作彩虹光影图片
  • 怎么自己做购物网站网址在线生成二维码
  • 河北网站建设就业考试担路网络科技有限公司的证书
  • 公司网站设计图片网站备案要营业执照原件吗
  • 如何做h5商城网站wordpress最近浏览器