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

www.zhiqu.org     时间: 2024-06-15
#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");
}

应该还有*和/吧,否则都加起来也不够100啊

123+45-67+8-9=100

可以编程序穷举,你列举几个你能看懂的语言,我给你写程序。

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

只能用穷举法

九个数字间有8个空位,每个空位都可以放入"+" "-" "(空)" 这三个的其中之一,计算3的8次方次,输出结果为100的所有方案。

1+2+3+4+5+6+7+8*9=100


#谭饰剑# 在1 2 3 4 5 6 7 8 9这几个数字中添上运算符号,使结果等于99.(书的顺序不能改变) -
(17025274804): {(1+2+3+4+5+6)÷7+8}*9=99 1+2-3+4+5*6+7*8+9=99 1*2+3+4+5+6+7+8*9=99

#谭饰剑# 在1,2,3,4,5,6,7,8,9这九个数字中,不改变它们的顺序,在它们中间添上加,减两种符号,使所得的结 -
(17025274804): 1+2+3+4+5+6+7+8*9=100 1+(2+3+4)*(5+6+7-8)+9=100 (1+2+3+4)*(5+6)+7-8-9=100 1+(2+3+4)*(5+6-7+8)-9=100 1+2+(3+4)*(5+6)/7*8+9=100 (1+2+3+4)*((5-6)*7+8+9)=100 1+((2+3+4)*5-6*7+8)*9=100 (1+2+3+4)*((5-6)*(7-8)+9)=100 (1+2+3+4)*(...

#谭饰剑# 把1、2、3、4、5、6、7、8、9这九个数字填入下面的九个格内,使每个数只使用一次, -
(17025274804): 2002=2*7*11*132*7*(1+3+4+5)*(9+8-6)=2002

#谭饰剑# 1 2 3 4 5 6 7 8 9=2000 添加加减乘除可以用(),使等号成立出一道小学三年级的数学加考题考考大家(不要小看喔) 1 2 3 4 5 6 7 8 9=2000 在各数字中间... - 作业帮
(17025274804):[答案] 1*(2345-6*7*8-9)=2345-336-9=2000

#谭饰剑# 在1 2 3 4 5 6 7 8 9九个数字中插入“+”或“ - ”符号,使每两个数字之间都有符号,使得结果为10 -
(17025274804): 1*(2+3+4)+5+6+7-8-9=10

#谭饰剑# 在1、2、3、4、5、6、7、8、9这一串数字中间,加入运算符号"+"或" - ",使其代数和等于99 -
(17025274804): 不使用括号的话,共有17个: 1-23-4+56+78-9=99 1-23+45-6-7+89=99 1+2+34+56+7+8-9=99 1-2+34+56-7+8+9=99 1+23+4-5-6-7+89=99 1+23+4+5+67+8-9=99 1+23-4-5+67+8+9=99 1+23+45+6+7+8+9=99 12+3+4+5+6+78-9=99 12+3-4-5+6...

#谭饰剑# 将1、2、3、4、5、6、7、8、9这九个数字填入框中,使等式成立.你能想出不同的填法? -
(17025274804): 219=1/2*438=1/3*657 192=1/2*384=1/3*576 327=1/2*654=1/3*981 273=1/2*546=1/3*819

#谭饰剑# 在1,2,3,4,5,6,7,8,9中插入加减号共3个,使其和为100. - 作业帮
(17025274804):[答案] 123-45-67+89 =100

#谭饰剑# 数学问题 - 将1、2、3、4、5、6、7、8、9、这九个数字填入框中 -
(17025274804): 192=1/2*384=1/3*576219=1/2*438=1/3*657273=1/2*546=1/3*819 327=1/2*654=1/3*981

#谭饰剑# 对数学感兴趣的朋友看看!运算符号的妙用 在1、2、3、4、5、6、7、8、9这一串数字中间,加入运算符号“+”或“ - ”,使其代数和等于99,按(1 …… 9... - 作业帮
(17025274804):[答案] 12-3+4+5-6+78+9=99 12+3-4-5+6+78+9=99 12+3+4+5+6+78-9=99 1+23-4-5+67+8+9=99 1+23+4+5+67+8-9=99 1-2+34+56-7+8+9=99 1+2+34+56+7+8-9=99 这几个算式的规律是找出2个2位数的和为90,剩下5个数加起来是27,把5个数分成3组数...