喊7的次数重排

华为机试练习(五)7次数重排 题目描述 7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。编号为1的人从1开始数,下一个人的数字为上一个人的数字加1,但是当数字是7的倍数或者数字本身含有7的话,要"过"。现给定一个长度为N的数组,存储了打乱顺序的每个人"过"的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人"过"的次数。 输入 输入为一行,为空格分隔的"过"的次数 样例输入 0 1 0 样例输出 1 0 0 说明 一共只有一次"过",那只会发生在需要 7 时,按顺序,编号为 . 阅读详情

/*输入一串打乱的喊7次数,输出准确的顺序
* 例如:输入00021 代表五个人,喊了三次过(逢7过)
*       遇到的就是7,14,17,
*       1  2  3  4  5
*       6  7  8  9  10
*       11 12 13 14 15
*       16 17 
*       分别出现在2号两次和4号一次,
*       准确的顺序是02001
* */
public class SevenPass {

    public static void main(String[] args) {
        String str = "00021";
        System.out.println(rightSort(str));
    }

    static String rightSort(String str){
        int num = str.length();
        int count = sum(str);
        System.out.println("count==="+count+";num==="+num);
        int[] ins = new int[num];
        int c= 0;
//      遇到count次7,按照最大遇到的数字count*7遍历
        for(int i=1;i<=count*7;i++){
//            遍历过程统计遇7的次数,等于count时停止遍历
            if(c==count){
                break;
            }
//            7的倍数或含7的数字,计算一次
            if(i%7==0||contains7(i)){
                ins[i%num-1] +=1;
                c++;
            }
        }
        StringBuilder sb = new StringBuilder();
        for(int n:ins){
            sb.append(n);
        }

        return sb.toString();
    }

   static boolean contains7(int i) {
       return Integer.toString(i).contains("7");
   }

    static int sum(String str) {
        int count = 0;
        for(int i =0;i<str.length();i++){
            count += Integer.parseInt(String.valueOf(str.charAt(i)));
        }
        return count;
   }
}

有没有其他算法,欢迎留言~

c++7次数重排编码实例 题目&解题思路 来源:https://blog.csdn.net/tiger9991/article/details/107037724 (文字部分来自如上博客) 11、7次数重排 7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。编号为1的人从1开始数,下一个人的数字为上一个人的数字加1,但是当数字是7的倍数或者数字本身含有7的话,要"过"。现给定一个长度为N的数组,存储了打乱顺序的每个人"过"的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人"过" 阅读详情

相关推荐

【100分】【7次数重排

编号为1的人从1开始数,下一个人的数字为上一个人的数字加1,但是当将要出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接出来,而是要”过”。现给定一个长度为N的数组,存储了打乱顺序的每个人”过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人”过”的次数。假定玩这个游戏的N个人都没有失误地在正确的时机了”过”,当到数字K时,可以统计每个人”过”的次数。输入为一行,为空格分隔的”过”的次数,注意K并不提供,K不超过200,而数字的个数即为N。

weixin_54707168的博客 906

7 就跳过 100挑战

一个超级无敌小白的python学习艰难之路的过程,超级无敌的简单的写了第一个小小的代码,希望以后有机会可以和各位大神交流心得。

【华为OD机考真题】- 7次数重排Java

🔔本文收录于「最新最全华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均搜集于互联网。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅读使用!

**My Coding Family** 1368

华为机考题:7次数重排

编号为1的人从1开始数,下一个人的数字为上一个人的数字加1,但是当将要出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接出来,而是要"过"。现给定一个长度为N的数组,存储了打乱顺序的每个人"过"的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人"过"的次数。一共有三次"过",发生在7 14 17,按顺序,编号为2的人会遇到7 17,编号为4的人会遇到14,故输出0 2 0 1 0。输出为一行,为顺序正确的"过"的次数,也由空格分隔。//1、是不是7的倍数。

weixin_50547796的博客 298

华为OD机试真题---7次数重排

7是一个传统的聚会游戏。编号为1的人从1开始数,下一个人的数字为上一个人的数字加1。但是,当将要出来的数字是7的倍数或者数字本身含有7时,不能把这个数字直接出来,而是要“过”。假定玩这个游戏的N个人都没有失误地在正确的时机了“过”,现在给定一个长度为N的数组,存储了打乱顺序的每个人“过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人“过”的次数。注意:实际的模拟过程不需要我们确切地知道到了哪个数字,只需要知道每个人“过”的次数是否正确。直接告诉我们答案应该是。

风信子的博客 1500

E-7次数重排(100p)

的数组,存储了打乱顺序的每个人"过"的次数。你的任务是将它还原成正确的顺序,即数组的第。这道题目的核心在于模拟7游戏的过程,并记录每个人"过"的次数。输入为一行,包含空格分隔的"过"的次数。输出为一行,包含顺序正确的"过"的次数,用空格分隔。个人围成一圈,按顺时针从 1 到。7是一个传统的聚会游戏。现在,给定一个长度为。的人"过"的次数

春秋招笔试突围 203

华为OD机试 - 7次数重排Java 2025 B卷 200分)

编号为1的人从1开始数,下一个人的数字为上一个人的数字加1,但是当将要出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接出来,而是要”过”。现给定一个长度为N的数组,存储了打乱顺序的每个人”过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人”过”的次数。假定玩这个游戏的N个人都没有失误地在正确的时机了”过”,当到数字K时,可以统计每个人”过”的次数。输入为一行,为空格分隔的”过”的次数,注意K并不提供,K不超过200,而数字的个数即为N。

学Java,找哪吒 2065

华为OD机试题 - 7次数重排JavaScript)| 机考必刷

本篇题解:七 题目 7,是一个传统的聚会游戏, N 个人围成一圈,按顺时针从1 - 7编号, 编号为1的人从1开始数, 下一个人得数字是上一个人得数字+1, 但是当将要出数字7的倍数或者含有7的话, 不能出,而是要过。 假定N个人都没有失误。 当道数字k时, 可以统计每个人“过"的次数。 现给定一个长度N的数组, 存储打乱的每个人”过"的次数, 请把它还原成正确顺序。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

【华为OD机试】真题E卷-7次数重排(Python)

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

u014481728的博客 1390

华为OD机试题,用 Java 解【 7次数重排】问题

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

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 3927

【华为OD机试】真题E卷-7次数重排Java

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

u014481728的博客 990

【华为OD机试真题E卷】532、7次数重排 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py)

【华为OD机试真题E卷】532、7次数重排 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py) 题目描述 7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。 编号为1的人从1开始数,下一个人的数字为上一个人的数字加1,但是当将要出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接出来,而是要”过”。 假定玩这个游戏的N个人都没有失误地在正确的时机了”过”,当到数字K时,可以统计每个人”过”的次数。 现给定一个长度为N的数组,存储了打

KJ.JK 1万+

7次数重排

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

weixin_39765576的博客 993

【2023年秋季】华为OD统一考试(B+C+D卷)题库清单(已收录176题),又快又全的 B+C+D 卷题库大整理

OD统一考试(B卷),已经来啦! 华为OD机试B卷更新整理中。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 5万+

【华为OD机考python】7次数重排

7 是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。 编号为1的人从1开始数,下一个人得数字是上一个人得数字+1,但是当将要出数字7的倍数或者含有7的话,不能出而是要“过”。

2303_78430733的博客 437

机考[21-30]

机考【21-30】

csfun1的博客 5358

华为OD机试 - 7次数重排(Python)

编号为1的人从1开始数,下一个人的数字为上一个人的数字加1,但是当将要出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接出来,而是要”过”。现给定一个长度为N的数组,存储了打乱顺序的每个人”过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人”过”的次数。假定玩这个游戏的N个人都没有失误地在正确的时机了”过”,当到数字K时,可以统计每个人”过”的次数。输入为一行,为空格分隔的”过”的次数,注意K并不提供,K不超过200,而数字的个数即为N。

m0_46181452的博客 353
上一篇: SimpleDateFormat 的 parse()方法
下一篇: 求和为整数的最长子序列的长度
姜沫儿
博客等级 码龄9年 0粉丝 4原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值