LQ0020 加法变乘法枚举

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0020 加法变乘法枚举相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2022初赛

题目描述
我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+…+1011+12+…+2728+29+…+49 = 2015 就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交。
(对于示例,就是提交10)。

输出格式
注意:需要你提交的是一个整数,不要填写任何多余的内容。

问题分析
加号变乘号,2个求和公式中只有加号变成乘号相关部分不同,其他部分是相等的。
用枚举法来实现。
程序计算结果为16。

程序说明
程序中使用"exit(0)"来结束二重循环,相对比较简单一些。该函数在"stdlib.h"中声明原型。

AC的C语言程序如下:

/* LQ0020 加法变乘法 */

#include <stdio.h>
#include <stdlib.h>

#define N 49

int main()

    for (int i = 1; i <= N; i++)
        for (int j = i + 2; j <= N; j++)
            if (i != 10 && (1225 - (i + i + 1) - (j + j + 1)) ==
                    (2015 - (i * (i + 1)) - (j * (j + 1)))) 
                printf("%d\\n", i);
                exit(0);
            

    return 0;

以上是关于LQ0020 加法变乘法枚举的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥杯-加法变乘法(java)

2015_B t6加法变乘法

2015_B t6加法变乘法

加法表 乘法表

LQ0156 立方变自身枚举

sap的四则运算中的加法