CCF-CSP第18次认证第一题——报数【两个与string相关的函数的使用】

CCF-CSP第18次认证第一题------报数

官网链接:TUOJ

时间限制: 1.0 秒

空间限制: 512 MB

下载题目目录(样例文件)

题目描述

甲乙丙丁决定玩一个报数的游戏来打发时间。游戏规则为四个人从 11 开始轮流进行报数,但如果需要报出的数是 77 的倍数或含有数字 77 则直接跳过。

此外大家约定,在总共报出了 𝑛n 个数后(不计入被跳过的数)游戏结束。现在需要你来帮忙统计,游戏过程中每个人各自跳过了几次。

输入格式

从标准输入读入数据。

输入仅一行,包含一个正整数 𝑛n,表示报出了多少个数后游戏结束。

输出格式

输出到标准输出。

输出共四行,每行一个整数,依次表示甲乙丙丁四人在游戏过程中跳过的次数。

样例1输入

复制代码
20

样例1输出

复制代码
2
1
1
0

样例1解释

报数过程为:

复制代码
甲:1,乙:2,丙:3,丁:4
甲:5,乙:6,丙:跳过,丁:8
甲:9,乙:10,丙:11,丁:12
甲:13,乙:跳过,丙:15,丁:16
甲:跳过,乙:18,丙:19,丁:20
甲:跳过,乙:22,丙:23,丁:24

在丁报出 2424 后,四个人总计报出了 2020 个数,游戏结束。

样例2输入

复制代码
66

样例2输出

复制代码
7
5
11
5

子任务

  • 测试点 11、22、33、44 和 55,保证 𝑛≤102n≤102;
  • 测试点 66、77、88、99 和 1010,保证 𝑛≤666n≤666。

参考题解

cpp 复制代码
#include <iostream>
#include <vector>

using namespace std;

int main () {
	int n;
	cin >> n;
	vector<int> count (4, 0);
	int number = 1;
	int skip = 0;
	bool flag = true;
	while(flag) {
		for(int i = 0; i < 4; i++, number++) {
			if(number > n + skip) {
				flag = false;
				break;
			}
			if(number % 7 == 0 || to_string(number).find('7') != string::npos) {
				count[i]++;
				skip++;
			}
		}
	}
	for(int i = 0; i < 4; i++) {
		cout << count[i] << "\n";	
	}
	
	return 0;
}

总结

刚开始看题目心想这还不简单,分分钟搞定,结果发现自己不知道int转string**【to_string(int)】** 以及string中查找指定字符**【string.find(char)】**的函数,在网上搜索后完成编程,但是运行结果又不对,一直是1110,看了半天才发现错误

  1. to_string(number).find('7')如果未找到返回的是string::npos,是一个特定数值,并不是0或者null什么的,所以if语句中不能直接只用这个
  2. 题目中说的n是不算跳过的数的,是要报n个数,跳过的数是不用报的,所以还要加上skip
  3. 在合适的地方输出中间结果,看和自己预期哪里不一样,有助于debug
相关推荐
青梅味猪大肠41 分钟前
【深入浅出C++】为什么虚表指针可以解决菱形继承
开发语言·c++
Lhan.zzZ1 小时前
QML 组件库:VS2022 + Qt 静态库方案
开发语言·c++·qt·visual studio
骐骥12 小时前
学习:javaScriptProxy和registerJavaScriptProxy有什么区别,能注册多少个对象
学习·鸿蒙
Huathy-雨落江南,浮生若梦2 小时前
Caddy 学习笔记 - 反向代理与 IP 封禁
笔记·学习·tcp/ip
m4Rk_4 小时前
【论文阅读】Agent 记忆机制(57):MemSearch-o1——从查询词元生长证据,重组 Deep Search 记忆路径
论文阅读·人工智能·学习·开源·github
一木 之林4 小时前
五、C++ 新特性、关键字与编译原理(进阶)(二)
java·开发语言·c++
OPEN-F4 小时前
C++11/14新特性精讲:移动语义与智能指针实战
开发语言·c++·算法
闭月之泪舞4 小时前
C++编程学习
c++·学习
网安蟹佬霸5 小时前
2026网络安全每日学习计划:每天学多久?学什么?怎么安排?照着做就行!
网络·学习·安全·web安全·学习路线·网安
一条破秋裤6 小时前
TIM 输入捕获与 PWMI:从边沿到频率、占空比
笔记·stm32·学习