当前位置: 代码迷 >> C语言 >> 大家来做一条数学编程
  详细解决方案

大家来做一条数学编程

热度:71   发布时间:2005-12-08 17:59:00.0
大家来做一条数学编程

有一条算式84 _ 6 _ 10 _ 8 _ 10 _ 2 = 50 ,其运算符并不知道(只有+ - × ÷四种运算符,下滑线是符号的位置),要求编写一个程序把运算符找出来?请问各位高手有办法吗?答案曰后公布!

[此贴子已经被作者于2005-12-8 18:31:11编辑过]

搜索更多相关的解决方案: 数学  

----------------解决方案--------------------------------------------------------

没有括号吧?
那最后那个2后面怎么还有一个运算符啊?


----------------解决方案--------------------------------------------------------
以下是引用maoguoqing在2005-12-8 18:09:00的发言:

没有括号吧?
那最后那个2后面怎么还有一个运算符啊?

刚才打错了,不好意思。


----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include<math.h>
int N;
float date0[6]={84,6,10,8,10,2},date[6];
char ch0[5],ch[5];

void pro(int i,char chr)
{
int j;
switch(chr)
{
case '*':date[i]=date[i]*date[i+1];break;
case '/':date[i]=date[i]/date[i+1];break;
case '+':date[i]=date[i]+date[i+1];break;
case '-':date[i]=date[i]-date[i+1];break;
}
for(j=i;j<N-1;j++) ch[j]=ch[j+1];
i=i+1;
for(;i<N;i++) date[i]=date[i+1];
N=N-1;
}

void main()
{
int j1,j2,j3,j4,j5,j,yes,yes1,i;

char a[4]={'+','-','*','/'};

for(j1=0;j1<4;j1++)
{ch0[0]=a[j1];
for(j2=0;j2<4;j2++)
{ch0[1]=a[j2];
for(j3=0;j3<4;j3++)
{ch0[2]=a[j3];
for(j4=0;j4<4;j4++)
{ch0[3]=a[j4];
for(j5=0;j5<4;j5++)
{ch0[4]=a[j5];
for(j=0;j<5;j++) ch[j]=ch0[j];
for(j=0;j<6;j++) date[j]=date0[j];
N=5;
while(N!=0)
{
yes=1;i=0;
while((i<N)&&(yes))
{
if (ch[i]=='*') {pro(i,ch[i]);yes=0;break;}
if (ch[i]=='/') {pro(i,ch[i]);yes=0;break;}
i=i+1;
}
i=0;yes1=1;
if(yes)
while((i<N)&&(yes1))
{
if(ch[i]=='+') {pro(i,ch[i]);yes1=0;break;}
if(ch[i]=='-') {pro(i,ch[i]);yes1=0;break;}
i=i+1;
}
}
if(date[0]==50)
{ for(j=0;j<5;j++) {printf("%.0f",date0[j]);printf("%c",ch0[j]);}
printf("%.0f",date0[5]);printf("=50");
printf("\n");
}
}
}
}
}
}
}

运行结果 84*6/10-8/10/2=50


----------------解决方案--------------------------------------------------------
高手
----------------解决方案--------------------------------------------------------
强!!!!!!!!!!!!!!
----------------解决方案--------------------------------------------------------
有一点不敢确定,楼主这算式中例如有10/8,等于1(程序结果),还是按小学的算法等于1.25?
----------------解决方案--------------------------------------------------------
上面的问题问得好呀?如在c 中上面的结果应该是不对的呀?
----------------解决方案--------------------------------------------------------

数学问题自然是数学计算
如果按计算机来的,我干嘛
把那几个数定义为float,我为什么不定义为int 呢?


----------------解决方案--------------------------------------------------------

程序写的好复杂哦,!!!看不懂


----------------解决方案--------------------------------------------------------
  相关解决方案