在1 2 3 4 5 6 7 8 9九个数字中插入“+”或“-”符号使得结果为100,程序如何实现啊?

我想要代码实现它?用C语言就行。我能看懂。谢谢了。不用太仔细,把思路告诉我一下也可以。... 我想要代码实现它?
用C语言就行。我能看懂。谢谢了。不用太仔细,把思路告诉我一下也可以。
展开
 我来答
泼猴德拉
推荐于2017-11-28 · TA获得超过164个赞
知道小有建树答主
回答量:138
采纳率:50%
帮助的人:114万
展开全部
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i=0,qian=0,hou=0;//一个运算符连的2个数分别为qian hou
int ysf=0;//运算符
int qh=0;//当前是qian还是hou的标记 0为qian 1为hou
int total=0;//算式结果
int suan[8]={0};//8个可能的运算符插入位,0表没有,1表加法,2表减法

for(suan[0]=0; suan[0]<3; suan[0]++)//1 2间的运算符
for(suan[1]=0; suan[1]<3; suan[1]++)//2 3间的运算符
for(suan[2]=0; suan[2]<3; suan[2]++)//3 4间的运算符
for(suan[3]=0; suan[3]<3; suan[3]++)//4 5间的运算符
for(suan[4]=0; suan[4]<3; suan[4]++)//5 6间的运算符
for(suan[5]=0; suan[5]<3; suan[5]++)//6 7间的运算符
for(suan[6]=0; suan[6]<3; suan[6]++)//7 8间的运算符
for(suan[7]=0; suan[7]<3; suan[7]++)//8 9间的运算符
{
//重置
qian=1;//第一个数
ysf=0;
qh=0;
total=0;
//开始运算
for(i=0; i<8; i++)
{
//无运算符
if(suan[i] == 0){
if(qh==0) qian=qian*10+(i+2);
else hou=hou*10+(i+2);}
//遇到了新运算符
else{
//完成前一运算符的计算,结果为qian,依然取hou
if(qh==1){
total=qian+ysf*hou;
qian=total;
hou=i+2;}
//开始取hou数
else{
qh=1;
hou=i+2;}
//更新运算符
if(suan[i]==1) ysf=1;
else ysf=-1;}
}
//完成最后一个运算
total=qian+ysf*hou;
//输出
if(total==100){
for(i=0; i<9; i++){
printf("%d",i+1);
if(i<8 && suan[i]==1) printf("+");
if(i<8 && suan[i]==2) printf("-");}
printf("=%d\n",total);}
}
system("pause");
}
IOQU
2008-05-04 · TA获得超过137个赞
知道小有建树答主
回答量:292
采纳率:0%
帮助的人:160万
展开全部
应该还有*和/吧,否则都加起来也不够100啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq150505529
2008-05-04 · TA获得超过191个赞
知道答主
回答量:191
采纳率:0%
帮助的人:107万
展开全部
123+45-67+8-9=100
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2008-05-04 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65812
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
可以编程序穷举,你列举几个你能看懂的语言,我给你写程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式