C++课后习题训练记录Day114

1.练习项目:

问题描述

定义一种特殊的整数序列:这种序列由连续递增的整数组成,并满足以下条件:

  1. 序列长度至少为 3。
  2. 序列中的数字是连续递增的整数(即相邻元素之差为 1),可以包括正整数、负整数或 0。

例如,[1,2,3]、[4,5,6,7] 和 [−1,0,1] 是符合条件的序列,而 [1,2](长度不足)和 [1,2,4](不连续)不符合要求。

现给定一组包含 N 个正整数的数据 A1,A2,...,AN​。如果某个 Ai​ 能够表示为符合上述条件的连续整数序列中所有元素的和,则称 Ai​ 是可分解的。

请你统计这组数据中可分解的正整数的数量。

输入格式

输入的第一行包含一个正整数 N,表示数据的个数。

第二行包含 N 个正整数 A1,A2,...,AN​,表示需要判断是否可分解的正整数序列。

输出格式

输出一个整数,表示给定数据中可分解的正整数的数量。

2.选择课程

在蓝桥云课中选择题库,选择题号20545并开始练习。

3.开始练习

(1)源码 :

#include<bits/stdc++.h>

using namespace std;

using ll=long long;

const int N=1e5+10;

ll a[N];

int main()

{

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

ll n;cin>>n;

for(int i=1;i<=n;i++){

cin>>a[i];

}

ll ans=0;

for(int i=1;i<=n;i++){

if(a[i]!=1){

ans++;

}

}

cout<<ans<<'\n';

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:

解题思路:思维题

除了 11 以外的任何一个数 x,都可以构造成:[−(x−1),−(x−2),...,−1,0,1,...,x−1,x] 使其总和为 x。

因此,仅需统计序列中非 1 的个数即可。

注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。

相关推荐
BioRunYiXue1 小时前
Nature Methods:CellVoyager 自主 AI 智能体开启生物数据分析新时代
大数据·开发语言·前端·javascript·人工智能·数据挖掘·数据分析
Titan20241 小时前
map和set的封装学习笔记
数据结构·c++
懒惰的bit1 小时前
MFC常见消息映射(简洁版)
c++·mfc
Yupureki1 小时前
《算法竞赛从入门到国奖》算法基础:动态规划-路径dp
数据结构·c++·算法·动态规划
kcuwu.2 小时前
Python面向对象:封装、继承、多态
开发语言·python
一定要AK2 小时前
Java流程控制
java·开发语言·笔记
河西石头2 小时前
分享python项目与开源python项目中的效率法宝--requirements文件的使用
开发语言·python·requirements文件·批量安装python依赖·python虚拟环境配置
不懒不懒2 小时前
【卷积神经网络作业实现人脸的关键点定位功能】
开发语言·python
321.。2 小时前
Linux 进程控制深度解析:从创建到替换的完整指南
linux·开发语言·c++·学习