蓝桥杯 ALGO-118 算法训练 连续正整数的和

算法训练 连续正整数的和

时间限制:1.0s   内存限制:256.0MB

 

问题描述

78这个数可以表示为连续正整数的和,1+2+3+…+12,18+19+20+21,25+26+27。
输入一个正整数 n(<=10000)
输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+1)+…+b=n。
对于多种表示法,a小的方案先输出。

 

样例输入

78

 

样例输出

1 12
18 21
25 27
分析:对于连续整数和蓝桥杯 ALGO-118 算法训练 连续正整数的和,则可推出蓝桥杯 ALGO-118 算法训练 连续正整数的和,于是蓝桥杯 ALGO-118 算法训练 连续正整数的和。那么对于某一个,只要确定蓝桥杯 ALGO-118 算法训练 连续正整数的和为完全平方数,则就可以说计算出的值符合题意。

 

 

#include 
#include 

int is_prefect_square(int n)
{
    int root = (int)(sqrt(n) + 0.5);
    if (root * root == n)
        return 1;
    else
        return 0;
}

int main()
{
    int n;

    scanf("%d", &n);
    for (int a = 1; 2 * a < n; ++a)
    {
        if (is_prefect_square((2 * a - 1) * (2 * a - 1) + 8 * n))
        {
            int b = (-1 + (int)(sqrt((2 * a - 1) * (2 * a - 1) + 8 * n) + 0.5)) / 2;
            printf("%d %d\n", a, b);
        }
    }

    return 0;
}


给TA打赏
共{{data.count}}人
人已打赏
信息技术

ASCII码详解

2023-4-7 15:55:44

信息技术编程

算法 | 全排列问题(图文详解)

2023-4-10 22:14:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索