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

2. 方程式
【问题】
给出一个字符串,表达一个方程。
保证里面系数不会超过 1000000000。
保证方程有且只有一个解,而且方程只会有一个未知数 X,且X 的最高指数也只会有 1.
方程中所有的系数都是整数,且系数是1 就会被省略。
只会出现+、-符号,不会出现乘、除。
【输入】
输入一个字符串。表示方程。
【输出】
输出 X 的解。保留三位小数。
【样例】
equationagain.in
6x+7x+8x+1=6x+7x+9x
equationagain.out
1.000
【数据规模】
100%方程长度不会超过 255。

首先是方程式怎样表示的问题,在“数据规模”中提到方程长度不会超过255,即方程可用大小为256的字符数组来保存,既然是C++,当然也能用string来保存。为体现C++的优越,就用string吧。
主要思路就是跟据这个字符串,读出每个X的系数以及常数项;对于一元一次方程,常数项除以系数就是未知数的根了,最主要的就是设计算法读出每个项及其符号了。
我的具体思路就是读取每个字符,如果读到数字,就将其放入一个字符串n中,一旦读出的字符不是数字,转换n为整数,并结合符号位得出正负;如果读出符号,保存给符号位;如果数字之后读出X,就认为刚才读到的数字是X的系数,而应该加到系数中,如果是+-号就是常数项,加到常数中;如果+-号之后就是X,那么系数就为1。一旦碰到=号,就说明正负的计算应颠倒了……
总而言之就是解方程中的移项合并同类项,要是看不懂,我明天就追加一段代码来具体说明。

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

温馨提示:内容为网友见解,仅供参考
无其他回答

一道C++编程题目,思路是什么
首先是方程式怎样表示的问题,在“数据规模”中提到方程长度不会超过255,即方程可用大小为256的字符数组来保存,既然是C++,当然也能用string来保存。为体现C++的优越,就用string吧。主要思路就是跟据这个字符串,读出每个X的系数以及常数项;对于一元一次方程,常数项除以系数就是未知数的根了,最主要...

关于计算机C++编程的迷宫问题的解题思路?
\/*走通用迷宫问题的思路是:从给定的任意一个起点开始,向各个方向都有走动的可能,按照一定的顺序进行。判断如果该方向上能走,(能走要是:不是以前走过的地方,不是墙壁,不是地图之外)就走这一步,然后记录下这一步。如果不能走,就换下一个方向,如果能走就继续下一步。各个方向都不能走,...

菜鸟求c++编程思路
首先,需要有一个判断颜色区别的算法,是否以RGB配色表的下标就可以确定?这个需要根据配色表的特点来决定;也就是说,题目中如何判断延时区别尽量大的算法要设计好,怎么计算;数据结构:这个应该是二维数组,第一维表示组别,下标取值0~m-1,第二维是颜色,可以用配色表的下标值来表示 算法:要根据具...

一道C++编程题目,求大神帮忙,有没有简单点的算法,求程序!!答得好可以...
\/ 思路如下:1.对于第八列,和计算完成后,不管找没找到值,寻找当前列下一行(即i+1),无需进入下一列;2.对于非第八列,有两种情况:a.和大于等于最大值10(如果矩阵中有零值存在,此处应为大于10),不满足路径条件,没必要进入下一列计算,进入当前列下一行进行计算(即i+1);b.满足条件...

C++关于类的编程题目
具体思路如下:顺序:键盘-主机-显示器 他们与计算机类的关系是has-a的关系,也就是三者加上一些相关功能组成计算机类。对于这种类型,一般是把组成直接写入类里,例如:class computer { private:\/\/电脑的内部结构对用户透明,所以是私有的 host h;\/\/电脑主机 keyboard kb;\/\/键盘 monito m;\/\/显示器 ...

c++为啥做起来没思路啊。
第一,要用面向对象的思维方式去看待C++编程,即在C++程序员眼中,所有事物都是具有一些属性的,我们只要实例化一个“具体的事物”即对象就可以使用它的属性,比如一辆汽车,在面向过程编程,我们要开动它就需要为它添加一个开的函数,再调用这个函数就可以开了,但是在C++中我们就假设这辆车已经存在,它...

急需编程C++的思路想法,谁教教啊,跪求专业的同学,只要简单的想法、步...
这些其实都是字符串遍历、匹配问题。第一题,你只要设置一个变量char a[80]记录输入的字符串,再通过字符数组的角标,转换一下就可以了 第二题,你只要把字符串从头至尾遍历,然后和比对就可以了 后面的类似

c++编程求输入一个正整数(任意位数),倒序输出!
【解题思路】整数的逆序输出是很常见的题目,也比较简单。可以通过取余运算符(%)和除号(\/)来完成,具体的思路如下:比如要对123逆序输出。第一步是先对 123除以10取余数,这样就会得到3;第二步是把123除以10取整,得到12,然后再把3*10+12%10,得到32;第三步是把12除以10取整,得到1,然后再...

C++编程题:帮我理解一下这个代码
首先分析一下这个题目,题目分析清楚了,代码也就清楚了。我们假设摆2*N块砖有dig[n]中方法,根据下面的分析,我们可以dig[n]递归到dig[n-1]和dig[n-2]上,dig[n]可以分解为上图的三种摆法:1. 最后选一块2*1的砖,竖着放: 前面2*(N-1)块砖,一共有dig[n-1]种摆法 2. 最后选一...

c++水仙花数的编程是什么?
思路:初始化i=100。①取i的各位数,百位a,十位b,个位c。②判断i==a∧3+b∧3+c∧3 是否成立。③如果成立则输出,否则不输出。④i=i+1,当i小于1000重复①,否则结束。关键算法:取任意三位数的各位数。①将数除以10取余数得个位c,将该数除以10。②重复①得到十位b。③继续重复①得到...

相似回答