输入 x+1=6
得到x=5
求通用的 能解其他简单的一元一次方程 代码
如 2*x+1=11

解决方案 »

  1.   

    ax+b = c      x = (c-b)/a 
      

  2.   

    ...很复杂不好写,类似于建立二叉树....要考虑到算法优先级:括号>乘除>加减
      

  3.   

    很复杂的越低级的运算符,现在越高了,并做反向的运算比如 + -> - * -> /比如:x*2+1=11先保存11再找到最后运算的运算符,这里是+,再找到参与的表达式,再反向运算,变-1了,保存11-1再重复上面这步,遇到(x+2)*(x+3)这样的,还要再做简化,很复杂
      

  4.   

    jx0797 谢谢
    (x+2)*(x+3) 是一元二次了
      

  5.   

    object o=new DataTable().Compute(string.Format("{0}+1","1"),"");
      

  6.   

    线性方程组可以用牛顿迭代法求方程的根。这些很基本的算法在计算数学里面都有。lz还需要对输入的表达式做解析,这个需要用到词法分析,看编译原理,里面也有。
    如果你不需要表达式解析,也可以将方程转化成标准形式得到系数据矩阵,然后直接计算。事实上,matlab和很多程序包已经封装好了算法。总之,对于一个学习过计算机科学的学生来说,这些都是很基本的问题。
      

  7.   

    如果你只是使用。并且不太会编程,你可以考虑使用Microsoft Student这个软件,内置的计算器就支持表达式计算和方程求解。而且事实上这个计算器就是C#写的。
      

  8.   

    我发了个贴.大家参考下:
    http://topic.csdn.net/u/20110301/13/5ae9cc18-36c2-4dd8-933c-08036a93e3af.html
    (能解括号()/*-+逻辑运算符&|$)还有其他
    大家帮忙看看.谢谢哈