您的位置:首页 > 编程语言 > C语言/C++

第六届 蓝桥杯 c/c++ B组 省赛 (6)——加法变乘法

2018-03-06 13:43 369 查看
加法变乘法

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

比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。

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

注意:需要你提交的是一个整数,不要填写任何多余的内容。
这道题其实也很简单,用num1,num2标记两个乘号的位置,然后暴力判断就行 答案是16#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int i,j,num1,num2,num,h;
for(i=1;i<=46;i++)
{
num1=i;
for(j=i+2;j<=48;j++)//两个乘号不能相邻
{
num2=j;
num=0;
for(h=1;h<num1;h++)
{
num+=h;
}
num+=num1*(num1+1);
for(h=num1+2;h<num2;h++)
{
num+=h;
}
num+=num2*(num2+1);
for(h=num2+2;h<=49;h++)
{
num+=h;
}
if(num==2015)
{
cout<<num1<<endl<<num2<<endl;
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: