群答疑随手记:花椰妹在纸上写下了若干个连续的正整数,她把这些数遮挡住,只告诉蒜头君一共有k个数,它们的和为n,请蒜头君猜猜纸上是哪些数。现在蒜头君向你求助,帮他解决这个问题。(连续整数和)

简介: 群答疑随手记:花椰妹在纸上写下了若干个连续的正整数,她把这些数遮挡住,只告诉蒜头君一共有k个数,它们的和为n,请蒜头君猜猜纸上是哪些数。现在蒜头君向你求助,帮他解决这个问题。(连续整数和)

今天收到粉丝提问啦,抽空编个小代码解答一下啦!感谢他的信任!(以下是我的答案,仅供参考,如有错误,欢迎指正,谢谢)

image.gif

题目:

       连续整数和:花椰妹在纸上写下了若干个连续的正整数,她把这些数遮挡住,只告诉蒜头君一共有k个数,它们的和为n,请蒜头君猜猜纸上是哪些数。现在蒜头君向你求助,帮他解决这个问题。

要求:

       输入:两个整数n和k。输出:一行,k个整数从小到大输出。

代码:(C++语言)

#include <iostream>
#include <stdio.h>
#include <ctype.h>
#include<algorithm>
#include<cstring> 
#include<stdlib.h>  
using namespace std;
#define MAX 100;
int s2i(string s);
int check(string s);
int check_n(string s);
int check_k(string s);
int check_chinese(string s);
int sum(int i, int j);
int main()
{
    string n0,n1;
    int k, n;
    cout<<"请输入连续正整数的个数k(1<=k<=100):"<<endl;
    cin >> n0;
    while (check(n0) || check_k(n0)) {
        cout << "请输入0-100的正整数,不要输入负数或者小数或字母或汉字或超出范围的数:" << endl;
        cin >> n0;
    }
    cout << "请输入k个连续的正整数和的值n:" << endl;
    cin >> n1;
    while (check(n1)|| check_n(n1)){
        cout << "请输入1<=k<=10^9的正整数,不要输入负数或者小数或字母或汉字或超出范围的数:" << endl;
        cin >> n1;
    }
    k = s2i(n0);
    n = s2i(n1);
    while (true) {
        int i, j;
        char flag = false;
        for (i = 1; i <= n / 2; i++) {
            for (j = i; j < n; j++) {
                if (sum(i, j) == n && (j - i + 1 )==k) {
                    flag = true;
                    for (int p = i; p <= j; p++)
                        cout << p << " ";
                    cout << endl;
                    break;
                }
            }
        }
        if (flag == false)
            cout << "不存在"<<k<<"个连续的正整数和的值为"<<n << endl;
        break;
    }
    return 0;
}
int check_chinese(string s)
{
    string t;
    for (int i = 0; i < s.length(); i++)
    {
        if (s[i] < 255 && s[i]>0) //扩充的ASCII字符范围为0-255,如是,处理一个字节
        {
            t.append(s.substr(i, 1));
            t.append("/");
        }
        else //<0,>255的是汉字,处理两个字节
        {
            t.append(s.substr(i, 2));
            t.append("/");
            ++i;
            return -1;
        }
    }
    return  0;
}
int sum(int i, int j)
{
    return  (i + j) * (j - i + 1) / 2;
}
int s2i(string s)
{
    return atoi(s.c_str());
}
int check(string s) {
    if (check_chinese(s)==-1)
    {
        return -1;
    }
    else
    {
        char* a = new char[s.length()];
        strcpy(a, s.c_str());
        int i;
        for (i = 0; i < s.length(); i++) {
            if (!isdigit(a[i])) {
                return -1;
            }
        }
        return 0;
        delete[]a;
        a = NULL;
    }
}
int check_k(string s)
{
    int k;
    k = s2i(s);//string转为int存储
    if (k < 1 || k>100)
    {
        return -1;
    }
    else
    {
        return 0;
    }
}
int check_n(string s)
{
    int n;
    n = s2i(s);//string转为int存储
    if (n < 1 || n> pow(10, 9))
    {
        return -1;
    }
    else
    {
        return 0;
    }
}

image.gif

运行结果:

image.gif

image.gif

image.gif

用户不合理输入测试:image.gif

相关文章
高德地图目前是哪个集团下的公司?
其实在2014年02月,阿里巴巴就斥资11亿美元,完成对高德地图的全资收购,所以高德地图目前是属于阿里巴巴集团下的公司了。
5252 0
|
10月前
|
人工智能 编解码 监控
游戏显卡驱动,NVIDIA App ,0xc000007b,amd显卡驱动下载,解决游戏慢,游戏卡等问题
本文介绍了游戏显卡驱动的重要性及安装方法,涵盖NVIDIA和AMD显卡驱动下载与更新,解决游戏卡顿、闪退及报错0xc000007b等问题。提供三款工具推荐,支持自动识别与手动精准安装,优化游戏性能,提升体验。
948 5
|
Kubernetes 调度 虚拟化
Kubernetes和Docker有什么区别
【10月更文挑战第18天】Kubernetes和Docker有什么区别
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
587 3
|
11月前
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
634 0
|
11月前
|
云安全 运维 安全
唯一全领域卓越级!阿里云飞天企业版通过安全水位最新认证
近日,阿里云与中国信息通信研究院携手,共同发布了行业首个《专有云安全水位评估》标准,为行业引入第一个专有云安全整体评估体系。在该标准指导下,阿里云以飞天企业版通过了专有云安全水位评估验证,是参评产品中唯一在全领域均取得卓越级的产品,将帮助客户实现从合规到卓越的安全能力跃迁。
363 0
|
12月前
|
定位技术 API Android开发
怎么把定位改成你想要的位置?
GPS定位修改技术指南 一、定位修改技术原理
|
编解码 人工智能 文字识别
5款知名度不高,但很好用的软件
本文推荐了5款小众但实用的软件工具:MouseInc可通过手势操作提升效率;TagSpaces以标签化管理文件,打破传统目录结构;燃精灵可检测微信空号,助力精准营销;GIMP作为开源图像编辑器,功能媲美Photoshop;File Converter支持200+格式互转,满足多种文件处理需求。这些工具虽知名度不高,却各具特色,值得尝试。
421 10
|
人工智能 自然语言处理 测试技术
WebWalker:阿里巴巴推出评估LLMs在网页浏览任务中性能的基准工具
WebWalker是阿里巴巴开发的用于评估大型语言模型在网页浏览任务中性能的工具,支持多智能体框架和垂直探索策略,提供WebWalkerQA数据集进行性能测试。
856 1
WebWalker:阿里巴巴推出评估LLMs在网页浏览任务中性能的基准工具
|
机器学习/深度学习 人工智能 自然语言处理
《当心!生成式AI正成为网络钓鱼的“帮凶”,这些防范要点你必须知道!》
生成式AI在数字化浪潮中迅速革新各领域,带来便利的同时也催生了隐蔽且危险的网络钓鱼威胁。它通过自然语言处理生成逼真文本,突破语言限制,甚至利用深度伪造技术合成人脸和声音,使攻击更加难以察觉。为应对这一威胁,个人和企业需强化安全意识教育、部署先进安全工具、完善安全策略,并巧用检测工具识别AI生成内容,以筑牢防范之堤,保护信息安全。
536 3