一道C++编程题目,思路是什么2.方程式 给出一个字符串,表达一个方程.保证里面系数不会超过 1000000000.保证方程有且只有一个解,而且方程只会有一个未知数 X,且X 的最高指数也只会有 1.方程中
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 20:53:27
![一道C++编程题目,思路是什么2.方程式 给出一个字符串,表达一个方程.保证里面系数不会超过 1000000000.保证方程有且只有一个解,而且方程只会有一个未知数 X,且X 的最高指数也只会有 1.方程中](/uploads/image/z/1743596-44-6.jpg?t=%E4%B8%80%E9%81%93C%2B%2B%E7%BC%96%E7%A8%8B%E9%A2%98%E7%9B%AE%2C%E6%80%9D%E8%B7%AF%E6%98%AF%E4%BB%80%E4%B9%882.%E6%96%B9%E7%A8%8B%E5%BC%8F+%E7%BB%99%E5%87%BA%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%2C%E8%A1%A8%E8%BE%BE%E4%B8%80%E4%B8%AA%E6%96%B9%E7%A8%8B.%E4%BF%9D%E8%AF%81%E9%87%8C%E9%9D%A2%E7%B3%BB%E6%95%B0%E4%B8%8D%E4%BC%9A%E8%B6%85%E8%BF%87+1000000000.%E4%BF%9D%E8%AF%81%E6%96%B9%E7%A8%8B%E6%9C%89%E4%B8%94%E5%8F%AA%E6%9C%89%E4%B8%80%E4%B8%AA%E8%A7%A3%2C%E8%80%8C%E4%B8%94%E6%96%B9%E7%A8%8B%E5%8F%AA%E4%BC%9A%E6%9C%89%E4%B8%80%E4%B8%AA%E6%9C%AA%E7%9F%A5%E6%95%B0+X%2C%E4%B8%94X+%E7%9A%84%E6%9C%80%E9%AB%98%E6%8C%87%E6%95%B0%E4%B9%9F%E5%8F%AA%E4%BC%9A%E6%9C%89+1.%E6%96%B9%E7%A8%8B%E4%B8%AD)
一道C++编程题目,思路是什么2.方程式 给出一个字符串,表达一个方程.保证里面系数不会超过 1000000000.保证方程有且只有一个解,而且方程只会有一个未知数 X,且X 的最高指数也只会有 1.方程中
一道C++编程题目,思路是什么
2.方程式
给出一个字符串,表达一个方程.
保证里面系数不会超过 1000000000.
保证方程有且只有一个解,而且方程只会有一个未知数 X,且X 的最高指数也只会有 1.
方程中所有的系数都是整数,且系数是1 就会被省略.
只会出现+、-符号,不会出现乘、除.
【输入】
输入一个字符串.表示方程.
【输出】
输出 X 的解.保留三位小数.
【样例】
equationagain.in
6x+7x+8x+1=6x+7x+9x
equationagain.out
1.000
【数据规模】
100%方程长度不会超过 255.
一道C++编程题目,思路是什么2.方程式 给出一个字符串,表达一个方程.保证里面系数不会超过 1000000000.保证方程有且只有一个解,而且方程只会有一个未知数 X,且X 的最高指数也只会有 1.方程中
首先是方程式怎样表示的问题,在“数据规模”中提到方程长度不会超过255,即方程可用大小为256的字符数组来保存,既然是C++,当然也能用string来保存.为体现C++的优越,就用string吧.
主要思路就是跟据这个字符串,读出每个X的系数以及常数项;对于一元一次方程,常数项除以系数就是未知数的根了,最主要的就是设计算法读出每个项及其符号了.
我的具体思路就是读取每个字符,如果读到数字,就将其放入一个字符串n中,一旦读出的字符不是数字,转换n为整数,并结合符号位得出正负;如果读出符号,保存给符号位;如果数字之后读出X,就认为刚才读到的数字是X的系数,而应该加到系数中,如果是+-号就是常数项,加到常数中;如果+-号之后就是X,那么系数就为1.一旦碰到=号,就说明正负的计算应颠倒了……
总而言之就是解方程中的移项合并同类项,要是看不懂,我明天就追加一段代码来具体说明.