一道C++编程题目,思路是什么

2.方程式【问题】给出一个字符串,表达一个方程。保证里面系数不会超过1000000000。保证方程有且只有一个解,而且方程只会有一个未知数X,且X的最高指数也只会有1.方... 2. 方程式
【问题】
给出一个字符串,表达一个方程。
保证里面系数不会超过 1000000000。
保证方程有且只有一个解,而且方程只会有一个未知数 X,且X 的最高指数也只会有 1.
方程中所有的系数都是整数,且系数是1 就会被省略。
只会出现+、-符号,不会出现乘、除。
【输入】
输入一个字符串。表示方程。
【输出】
输出 X 的解。保留三位小数。
【样例】
equationagain.in
6x+7x+8x+1=6x+7x+9x
equationagain.out
1.000
【数据规模】
100%方程长度不会超过 255。
展开
 我来答
ssdfa0727
2010-11-06 · TA获得超过127个赞
知道小有建树答主
回答量:80
采纳率:0%
帮助的人:94万
展开全部
首先是方程式怎样表示的问题,在“数据规模”中提到方程长度不会超过255,即方程可用大小为256的字符数组来保存,既然是C++,当然也能用string来保存。为体现C++的优越,就用string吧。
主要思路就是跟据这个字符串,读出每个X的系数以及常数指键项;对棚正于一元一次方程,常数项除以系数就是未知数的根了,最主要的就是设计算法读出每个项及其符号了。
我的具体思路就是读取每个字符,如果读到数字,就将其放入一个字符串n中,一旦读出的字唯和巧符不是数字,转换n为整数,并结合符号位得出正负;如果读出符号,保存给符号位;如果数字之后读出X,就认为刚才读到的数字是X的系数,而应该加到系数中,如果是+-号就是常数项,加到常数中;如果+-号之后就是X,那么系数就为1。一旦碰到=号,就说明正负的计算应颠倒了……
总而言之就是解方程中的移项合并同类项,要是看不懂,我明天就追加一段代码来具体说明。

参考资料: 如果您的回答是从其他地方引用,请表明出处

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式