【编程题目 |100分】喊7的次数重排【2021 H1,H2, 2022 Q1 考试题 2023 Q2考试题 B卷】


时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,

编码后请点击”保存并调试“按钮进行代码提交。


题目描述

【喊7的次数重排】

喊7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。

编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1,但是当将要喊出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接喊出来,而是要喊”过”。

假定玩这个游戏的N个人都没有失误地在正确的时机喊了”过”,当喊到数字K时,可以统计每个人喊”过”的次数。

现给定一个长度为N的数组,存储了打乱顺序的每个人喊”过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人喊”过”的次数。

输入描述

输入为一行,为空格分隔的喊”过”的次数,注意K并不提供,K不超过200,而数字的个数即为N。

输出描述

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

 


代码实现


C++


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include<bits/stdc++.h>
using namespace std;
void init()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
}
void Split(string input, vector<int> &output, char patten)
{
string one_word = "";
int j = 0;
input += patten;
for (int i = 0; i < input.size(); i++) {
if (input[i] == patten) {
one_word = input.substr(j, i - j);
output.push_back(stoi(one_word));
one_word.clear();
j = i + 1;
}
}
}
#include<bits/stdc++.h> using namespace std; void init() { ios::sync_with_stdio(false); cin.tie(nullptr); } void Split(string input, vector<int> &output, char patten) { string one_word = ""; int j = 0; input += patten; for (int i = 0; i < input.size(); i++) { if (input[i] == patten) { one_word = input.substr(j, i - j); output.push_back(stoi(one_word)); one_word.clear(); j = i + 1; } } }
#include<bits/stdc++.h>

using namespace std;

void init()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
}

void Split(string input, vector<int> &output, char patten)
{
    string one_word = "";
    int j = 0;
    input += patten;
    for (int i = 0; i < input.size(); i++) {
        if (input[i] == patten) {
            one_word = input.substr(j, i - j);
            output.push_back(stoi(one_word));
            one_word.clear();
            j = i + 1;
        }
    }
}

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
String[] s1 = s.split(" ");
int count = 0;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String s = reader.readLine(); String[] s1 = s.split(" "); int count = 0;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        String[] s1 = s.split(" ");
        int count = 0;

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
passTimes = list(map(int, input().split()))
n = len(passTimes)
passTimes = list(map(int, input().split())) n = len(passTimes)
passTimes = list(map(int, input().split()))
n = len(passTimes)

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
while 1:
try:
nums = list(map(int, input().split()))
lens = len(nums)
while 1: try: nums = list(map(int, input().split())) lens = len(nums)
while 1:
    try:
        nums = list(map(int, input().split()))

        lens = len(nums)

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JavaScript


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let s = sc.radLine().split(" ").map(i=>parseInt(i));;
let len = s.length;
let s = sc.radLine().split(" ").map(i=>parseInt(i));; let len = s.length;
let s = sc.radLine().split(" ").map(i=>parseInt(i));;
let len = s.length;

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看