问题描述
我们都知道:1+2+3+ … + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如: 1+2+3+…+1011+12+…+2728+29+…+49 = 2015 就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你输出的是一个整数,不要输出任何多余的内容。 输入
没有输入。 输出
输出一个整数。 题目限制
1s, 1024KiB for each test case. 提示
用printf或cout输出答案。
思路:
本题就是将1到49存到数组中,然后用一个双重循环来遍历找出2个乘号的位置,再挨个验证是否符合题意即可。
代码:
#include <stdio.h>
#define N 50
int main()
{
int x
,y
,last
,a
[N
];
for(x
=0;x
<50;x
++)
{
a
[x
]=(x
+1);
}
for(x
=1;x
<=47;x
++)
{
for(y
=x
+2;y
<=49;y
++)
{
int change1
=a
[x
-1]+a
[x
]+a
[y
-1]+a
[y
];
int change2
=a
[x
-1]*a
[x
]+a
[y
-1]*a
[y
];
last
=1225-change1
+change2
;
if(last
==2015 && x
!=10)
printf("%d",a
[x
-1]);
}
}
return 0;
}
答案:16