题目:加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
解题思路:两层for循环分别代表要改变的符号的左边的数的位置,若i为a,即将a和a+1之间的+改成*,j为b,即将b和b+1之间的+改成*,所以等式右边变为 1225 - a- (a+1) - b - (b+1) +a*(a+1) + b*(b+1) ,若该数等于2015则输出i
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
for(int i=1; i<=47; ++i){
for(int j=i+1; j<=48; ++j){
if(1225-2*i-2*j-2+i*(i+1)+j*(j+1) == 2015){
printf("%d\n", i);
}
}
}
return 0;
}