群答疑随手记:花椰妹在纸上写下了若干个连续的正整数,她把这些数遮挡住,只告诉蒜头君一共有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

相关文章
|
算法 安全 Linux
二进制代码保护和混淆
常见二进制代码保护和混淆的概述
725 0
二进制代码保护和混淆
|
5月前
|
人工智能 安全 API
2025电商API新特性:实时数据流、GraphQL接口与隐私合规
2025年电商API迎来技术与合规双重革新,实时数据流、GraphQL接口、隐私合规成为核心突破方向,推动全息电商、动态定价、供应链协同等场景升级,实现性能优化与用户隐私保护的协同发展。
|
2月前
|
机器学习/深度学习 存储 人工智能
大模型微调:从理论到实践的全面指南
🌟蒋星熠Jaxonic:AI探索者,专注大模型微调技术。从LoRA到RLHF,实践医疗、法律等垂直领域模型优化,分享深度学习的科学与艺术,共赴二进制星河的极客征程。
大模型微调:从理论到实践的全面指南
|
3月前
|
人工智能 编解码 监控
游戏显卡驱动,NVIDIA App ,0xc000007b,amd显卡驱动下载,解决游戏慢,游戏卡等问题
本文介绍了游戏显卡驱动的重要性及安装方法,涵盖NVIDIA和AMD显卡驱动下载与更新,解决游戏卡顿、闪退及报错0xc000007b等问题。提供三款工具推荐,支持自动识别与手动精准安装,优化游戏性能,提升体验。
465 5
|
4月前
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
350 0
|
5月前
|
定位技术 API Android开发
怎么把定位改成你想要的位置?
GPS定位修改技术指南 一、定位修改技术原理
|
数据可视化 数据挖掘 定位技术
【理论+实操】GeoDa空间自相关
【理论+实操】GeoDa空间自相关
|
存储 Linux 5G
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
这篇文章介绍了LVM(逻辑卷管理)如何提供灵活的磁盘管理方式,允许动态调整逻辑卷的大小而不会丢失数据。
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
|
人工智能 安全 Cloud Native
首个!阿里云联合中国石油大学(北京)举办油气大模型创新大赛
首个!阿里云联合中国石油大学(北京)举办油气大模型创新大赛
333 7
|
机器学习/深度学习 人工智能 并行计算
英伟达禁止其他硬件平台运行 CUDA 软件
【2月更文挑战第16天】英伟达禁止其他硬件平台运行 CUDA 软件
359 12
英伟达禁止其他硬件平台运行 CUDA 软件