题目
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+1011+12+...+2728+29+...+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
分析:这道题是让把原来的加号中的两个变成乘号,既然是两个,我们不妨用两个循环来实现,也就是一个从1开始,另一个从49开始。首先让sum减去你要把加好 变成乘号的相邻的两个数,然后再加上他们的乘积,判断是否与2015相等。即
a = i*(i+1);
b = j*(j-1);
sum -= (i+i+1+j+j-1);
sum += (a+b);
代码实现就是
#include<stdio.h>
int main()
{
int i,j,a,b,sum;
for(i = 1; i <= 24; i ++)
for(j = 49; j >= 25; j --)
{
sum = 1225;
a = i*(i+1);
b = j*(j-1);
sum -= (i+i+1+j+j-1);
sum += (a+b);
if(sum == 2015)
printf("%d\n",i);
}
return 0;
}