《数学计算》
答案:5 悬赏:80 手机版
解决时间 2021-04-27 19:42
- 提问者网友:兔牙战士
- 2021-04-26 22:16
1、2、3、4、5、6、7、8、9、10这十个数用加减乘除法怎样得100这十个数顺序不能打乱!
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-04-26 23:34
答案不唯一:
可编程穷举法求解,以下是全部解答:
123+4+5+67-89-10
123+4-5-6-7-8+9-10
123-45+6+7+8-9+10
123-4+5-6-7+8-9-10
123-4-5+6+7-8-9-10
12+34+56+7-8+9-10
12+3+45+67-8-9-10
12+3+45+6+7+8+9+10
12+3+4+5+67+8-9+10
12+3+4-5-6-7+89+10
12+3-4-5+67+8+9+10
12-3+4-5+6+7+89-10
12-3-4-5-6+7+89+10
1+234-56-78+9-10
1+23+4+56+7+8-9+10
1+23-4-5+6+78-9+10
1+2+34+5+67-8+9-10
1+2+3+4+56+7+8+9+10
1+2+3+4+5+6+78-9+10
1+2+3-4-5+6+78+9+10
1+2-3+4+5-6+78+9+10
1-2+3+45-6+78-9-10
1-2-34+56+78-9+10
1-2-3-4+5+6+78+9+10
如果允许在1前添加符号,另外还有如下解
-123-4-5-678+910
-12+34+5-6+78-9+10
-12+34-5+6+78+9-10
-12+3+4+5-6+7+89+10
-1+234-56-78-9+10
-1+23+4+56+7-8+9+10
-1+2+34+5+67-8-9+10
-1+2-34+56+78+9-10
-1+2-3+4-5+6+78+9+10
-1-234-567-8+910
-1-23-4+56-7+89-10
-1-2+34-5+67+8+9-10
-1-2+3+4+5-6+78+9+10
c语言源代码如下:
#include <stdio.h>
#include <string.h>
void calsign(long n,char *a)
{
int i;
for (i=9;i>=0;i--)
{
*(a+i)=n%3+'0';
n=n/3;
}
*(a+10)='\0';
}
void inssign(char *a,char *b)
{
int i,j;
for (i=9;i>=0;i--)
if (*(b+i)!='0')
{
for (j=24;j>i;j--)
*(a+j)=*(a+j-1);
*(a+j)=(*(b+i)=='1')?'+':'-';
}
}
int calnum(char *a)
{
long x=-1,sum=0;
int sign=1;
for (;*a!='\0';a++)
{
if (*a=='+'||*a=='-')
{
if (x!=-1) sum+=x*sign;
sign=(*a=='+')?1:-1;
x=-1;
}
else if (x==-1) x=*a-48;
else x=x*10+*a-48;
}
sum+=x*sign;
return sum;
}
void main()
{
long n;
char sign[11],o[12]="12345678910",s[25];
for (n=0;n<59049;n++)
{
strcpy(s,o);
calsign(n,sign);
inssign(s,sign);
calnum(s);
if (calnum(s)==100) printf("%s\ ",s);
}
可编程穷举法求解,以下是全部解答:
123+4+5+67-89-10
123+4-5-6-7-8+9-10
123-45+6+7+8-9+10
123-4+5-6-7+8-9-10
123-4-5+6+7-8-9-10
12+34+56+7-8+9-10
12+3+45+67-8-9-10
12+3+45+6+7+8+9+10
12+3+4+5+67+8-9+10
12+3+4-5-6-7+89+10
12+3-4-5+67+8+9+10
12-3+4-5+6+7+89-10
12-3-4-5-6+7+89+10
1+234-56-78+9-10
1+23+4+56+7+8-9+10
1+23-4-5+6+78-9+10
1+2+34+5+67-8+9-10
1+2+3+4+56+7+8+9+10
1+2+3+4+5+6+78-9+10
1+2+3-4-5+6+78+9+10
1+2-3+4+5-6+78+9+10
1-2+3+45-6+78-9-10
1-2-34+56+78-9+10
1-2-3-4+5+6+78+9+10
如果允许在1前添加符号,另外还有如下解
-123-4-5-678+910
-12+34+5-6+78-9+10
-12+34-5+6+78+9-10
-12+3+4+5-6+7+89+10
-1+234-56-78-9+10
-1+23+4+56+7-8+9+10
-1+2+34+5+67-8-9+10
-1+2-34+56+78+9-10
-1+2-3+4-5+6+78+9+10
-1-234-567-8+910
-1-23-4+56-7+89-10
-1-2+34-5+67+8+9-10
-1-2+3+4+5-6+78+9+10
c语言源代码如下:
#include <stdio.h>
#include <string.h>
void calsign(long n,char *a)
{
int i;
for (i=9;i>=0;i--)
{
*(a+i)=n%3+'0';
n=n/3;
}
*(a+10)='\0';
}
void inssign(char *a,char *b)
{
int i,j;
for (i=9;i>=0;i--)
if (*(b+i)!='0')
{
for (j=24;j>i;j--)
*(a+j)=*(a+j-1);
*(a+j)=(*(b+i)=='1')?'+':'-';
}
}
int calnum(char *a)
{
long x=-1,sum=0;
int sign=1;
for (;*a!='\0';a++)
{
if (*a=='+'||*a=='-')
{
if (x!=-1) sum+=x*sign;
sign=(*a=='+')?1:-1;
x=-1;
}
else if (x==-1) x=*a-48;
else x=x*10+*a-48;
}
sum+=x*sign;
return sum;
}
void main()
{
long n;
char sign[11],o[12]="12345678910",s[25];
for (n=0;n<59049;n++)
{
strcpy(s,o);
calsign(n,sign);
inssign(s,sign);
calnum(s);
if (calnum(s)==100) printf("%s\ ",s);
}
全部回答
- 1楼网友:想偏头吻你
- 2021-04-27 03:06
(-1+2+3-4)=0(-5+6+7-8)=0...(-2005+2006+2007-2008)=0也就是每四项的和是0那前面那一堆全加起来也都是0那整个式子就剩-2009了所以答案是-2009
- 2楼网友:痴妹与他
- 2021-04-27 01:58
(1-2+3-4)/(5-6+7-8)+9*10
- 3楼网友:渊鱼
- 2021-04-27 00:30
1*2*3*4*5-6-7-8-9+10=100
- 4楼网友:行雁书
- 2021-04-27 00:22
1+2+3+4+5-6-7+8+9*10=100
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯