题目内容:
我们都知道:1+2+3+ … + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如: 1+2+3+…+10 x 11+12+…+27 x 28+29+…+49 = 2015 就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
思路:
用双重循环将所有乘号的可能组合方式一一验证即可,代码如下:(C语言)
#include<stdio.h>
int main()
{
int m,n;
for(m = 1;m < 47;m++)
{
for(n = m + 2;n < 49;n++)
{
if( m*(m+1) + n*(n+1) + 1225 - m - m -1 - n - n -1 == 2015)
//这里检验方法就是将两组乘数和剩下所有数加起来,剩下所有数的表示
//方法就是总和1225减去m、m+1、n、n+1即可
printf("%d * %d, %d * %d\n",m,m+1,n,n+1);
}
}
}
/* 结果是:
10 * 11, 27 * 28
16 * 17, 24 * 25
*/
由此可知答案是16
总共也就10行左右代码,肥肠的easy~