题面
我们都知道: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 协议进行许可 |