永发信息网

设计程序在“123456789=100”左边适当位置插入“+” 或 “-”使等式成立。例如123+45-67+8-9=100。

答案:3  悬赏:50  手机版
解决时间 2021-03-28 18:50
  • 提问者网友:泪痣哥哥
  • 2021-03-27 21:19
设计程序在“123456789=100”左边适当位置插入“+” 或 “-”使等式成立。例如123+45-67+8-9=100。
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-03-27 22:27
程序如下:

main()
{
char op,str[80];
int i,j,s,n,m,ptr;
for (i=0;i<=6561;i++)
{
s=0;
m=1;
n=i;
op='+';
ptr=0;
str[ptr++]='1';
for (j=2;j<=9;j++)
{
if (n%3)
{
if (op=='+') s+=m; else s-=m;m=j;
}
switch(n%3)
{
case 0:m=m*10+j;break;
case 1:op='+';break;
case 2:op='-';break;
}
if (n%3) str[ptr++]=op;
str[ptr++]='0'+j;

程序运行结果为:

FOUND: 123-45-67+89=100
FOUND: 12-3-4+5-6+7+89=100
FOUND: 12+3+4+5-6-7+89=100
FOUND: 123+4-5+67-89=100
FOUND: 1+2+3-4+5+6+78+9=100
FOUND: 12+3-4+5+67+8+9=100
FOUND: 1+23-4+56+7+8+9=100
FOUND: 1+2+34-5+67-8+9=100
FOUND: 1+23-4+5+6+78-9=100
FOUND: 123+45-67+8-9=100
FOUND: 123-4-5-6-7+8-9=100
全部回答
  • 1楼网友:琴狂剑也妄
  • 2021-03-27 23:33
人工智能的问题,只能用穷举法了,把+ -放到所以的位置挨个试试
  • 2楼网友:污到你湿
  • 2021-03-27 23:27
程序如下:
main()
{
char op,str[80];
int i,j,s,n,m,ptr;
for (i=0;i<=6561;i++)
{
s=0;
m=1;
n=i;
op='+';
ptr=0;
str[ptr++]='1';
for (j=2;j<=9;j++)
{
if (n%3)
{
if (op=='+') s+=m; else s-=m;m=j;
}
switch(n%3)
{
case 0:m=m*10+j;break;
case 1:op='+';break;
case 2:op='-';break;
}
if (n%3) str[ptr++]=op;
str[ptr++]='0'+j;
n/=3;
}
if (op=='+') s+=m; else s-=m;
str[ptr]='\0';
if (s==100) printf("FOUND: %s=%d\n",str,s);
}
}
程序运行结果为:
FOUND: 123-45-67+89=100
FOUND: 12-3-4+5-6+7+89=100
FOUND: 12+3+4+5-6-7+89=100
FOUND: 123+4-5+67-89=100
FOUND: 1+2+3-4+5+6+78+9=100
FOUND: 12+3-4+5+67+8+9=100
FOUND: 1+23-4+56+7+8+9=100
FOUND: 1+2+34-5+67-8+9=100
FOUND: 1+23-4+5+6+78-9=100
FOUND: 123+45-67+8-9=100
FOUND: 123-4-5-6-7+8-9=100
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯