2015-蓝桥杯省赛-C语言大学B组_加法变乘法
2017-04-01 21:22
239 查看
加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
思路:暴力枚举吧,枚举出乘号的位置.但是有个小坑.
说明:如果5个数的一种情况,1*2+3*4+5,怎么枚举?
数是确定的,但是符号不好解决.
方法1:
1 2
3 4
5
*
+ *
+
方法2:
1 2
3 4
5
* +
* +
我用的是第二种方法,首先两重循环,枚举乘号位置,再一遍循环计算当前情况的结果,若满足,即输出答案.
#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=0;
int main()
{
for(int i=1;i<50;i++)//第一个乘号的位置
{
for(int j=i+1;j<50;j++)//第二个乘号的位置
{
int sum=0;
for(int k=1;k<50;k++)
{
//如果当前位置是乘号
if(k==i||k==j)
{
sum+=k*(k+1);
k++;
}
else
{
sum+=k;
}
}
if(sum==2015)
cout<<i<<","<<j<<endl;
}
}
return 0;
}
运行结果:
10,27
16,24
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
思路:暴力枚举吧,枚举出乘号的位置.但是有个小坑.
说明:如果5个数的一种情况,1*2+3*4+5,怎么枚举?
数是确定的,但是符号不好解决.
方法1:
1 2
3 4
5
*
+ *
+
方法2:
1 2
3 4
5
* +
* +
我用的是第二种方法,首先两重循环,枚举乘号位置,再一遍循环计算当前情况的结果,若满足,即输出答案.
#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=0;
int main()
{
for(int i=1;i<50;i++)//第一个乘号的位置
{
for(int j=i+1;j<50;j++)//第二个乘号的位置
{
int sum=0;
for(int k=1;k<50;k++)
{
//如果当前位置是乘号
if(k==i||k==j)
{
sum+=k*(k+1);
k++;
}
else
{
sum+=k;
}
}
if(sum==2015)
cout<<i<<","<<j<<endl;
}
}
return 0;
}
运行结果:
10,27
16,24
相关文章推荐
- 2015第六届蓝桥杯 07 加法变乘法 (java)
- 2015蓝桥杯B组第六题(加法变乘法)
- 2015第六届蓝桥杯C++B组第六题:加法变乘法
- 蓝桥杯 — 加法变乘法(把其中两个不相邻的加号变成乘号)
- 第六届蓝桥杯 软件类省赛真题 第七题:加法变乘法
- (蓝桥杯第六届B组)加法变乘法
- 蓝桥杯——算法提高 大数加法&大数乘法&冒泡排序
- 【第六届蓝桥杯】加法变乘法
- 2015蓝桥真题——加法变乘法
- 第六届 蓝桥杯 c/c++ B组 省赛 (6)——加法变乘法
- 蓝桥杯 加法变乘法
- 2015年蓝桥杯省赛B组C/C++:加法变乘法
- 蓝桥杯 加法变乘法
- 蓝桥杯 加法变乘法 (填空题)
- 蓝桥杯 — 加法变乘法(把其中两个不相邻的加号变成乘号)
- 山东省第六届蓝桥杯 ///标题:加法变乘法//c/c++组
- oj网站的训练题(蓝桥杯):加法变乘法
- 蓝桥杯填空题 —— 加法变乘法
- 蓝桥杯--加法变乘法
- 第六届蓝桥杯加法变乘法