我如何只用基础知识来做到这一点 [英] How do I do this with only basics
问题描述
等式正确形式:任何操作都应该首先将每个等式转换为正确形式的
。等式本身应具有以下属性
1.变量按字母顺序从左到右排序
3x2 + 2x1 + 4x3 = 16
应该是
2x1 + 3x2 + 4x3 = 16
2.任何变量应该只出现一次
4x1 + 3x2-2x1 + 4x3 = 16
应该是
2x1 + 3x2 + 4x3 = 16
3.等式中只应出现一个常数项,它应该是
在右侧
2x1 + 3x2 + 5 + 4x3-11 = 10
应该是
2x1 + 3x2 + 4x3 = 16
第2页,共10页
4.等于1时的系数或-1数字1是可选的
1x1 + 3x2-1x3 = 10
可以输入为
x1 + 3x2-x3 = 10
< b>我尝试了什么:
我从第一点开始,将方程式分成另一个数组,但是我被卡住了我不知道该怎么办...任何帮助?
这是我尝试过的事情
PS我' m不允许使用复杂的方法或任何STL,只是数组,字符串,向量....任何基本的:/
Equation proper form : Any operation should first convert every equation to
the proper form. The equation proper should have the following properties
1. variables are ordered alphabetically from left to right
3x2+2x1+4x3=16
Should be
2x1+3x2+4x3=16
2. Any variable should appears only one time
4x1+3x2-2x1+4x3=16
Should be
2x1+3x2+4x3=16
3. Only one constant term should appear in the equation and it should be
on the right hand side
2x1+3x2+5+4x3-11=10
Should be
2x1+3x2+4x3=16
Page 2 of 10
4. Coefficient when equals to one or -1 the digit 1 is optional
1x1+3x2-1x3=10
Can be input as be
x1+3x2-x3=10
What I have tried:
I'm starting from the first point and splitting the equation and putting it into another array but I'm stuck and I don't know what should I do ... any help??
Here is what I have tried
PS I'm not allowed to use complex method or any STLs, just arrays, strings, vectors.... anything basic :/
cin >> s;
for (int i = 0; i<s.size(); i++)
{
if (s[i] == '+')
{
copyy[a] += s[i];
a++;
}
else
{
copyy[a] += s[i];
}
}
推荐答案
你的任务是等式,所以你必须找到所有x实例并将它们预先排序为一种子数组。这个子目标你必须评估,然后在最后重新构建解决方案。
这是令牌x1,x2等的一些字符串操作......
我想有些人不明白你的意思是x * x和x2; - )
Your task is sort the equation, so you must find all x instances and pre-order them into an sub array of one kind. This subarry you must evaluate and than re-build the solution at end.
It is some string operations for the tokens "x1", "x2" and so on...
I guess some people dont understand that you mean "x*x" with "x2" ;-)
这篇关于我如何只用基础知识来做到这一点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!