头像

Cyan

四川成都

深度强化学习炼丹师

2015年第六届蓝桥杯省赛-F. 加法变乘法

2015年第六届蓝桥杯省赛-F. 加法变乘法

2021-12-16 · 15次阅读 · 原创 · 数据结构与算法

题面

我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015

比如:
1+2+3+…+10x11+12+…+27x28+29+…+49 = 2015
就是符合要求的答案。

请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。

题解

枚举

枚举前后两个变换为乘法的位置,i 表示在数字 i 后面变换为乘号, j 表示在 j 后变为乘号,再判断变换乘号后的结果是否满足要求即可。

答案:

16

代码

#include<iostream> using namespace std; int main() { int all = 1225; for (int i = 1; i <= 48; i++) { int s = all - 2 * i - 1; s += i * (i + 1); for (int j = i + 2; j <= 48; j++) { int t = s; t = t - 2 * j - 1; t += j * (j + 1); if (t == 2015) { cout << i << endl; } } } return 0; }

标题: 2015年第六届蓝桥杯省赛-F. 加法变乘法
链接: https://www.fightingok.cn/detail/175
更新: 2022-09-18 22:45:29
版权: 本文采用 CC BY-NC-SA 3.0 CN 协议进行许可