以下为自己在做上机练习的笔记记录,仅作参考;
软件:VS2022
语言:C++
输入说明:整数a,b。
输出说明:x保留一位小数。
思路1:解方程
通过计算,得到x = (5 -3*b)/2 *a //注意符号要是英文的
将表达式代入。
#include <iostream>
using namespace std;
int main()
{
float a, b, x; //在C++中 计算如1/2转为int之后结果为0,所以将a和b作为浮点数。
cin >> a >> b;
x = (5 - 3 * b) / 2 * a;
cout << x;
}
思路2:
暴力代数法:
根据x的系数进行分类讨论,从0开始,以0.1为单位,一次次增加(减少)x的值,直至代数式的结果为零;
不过可能出现死循环等问题,虽然测试数据1,2通过了,还是忽略这种方法吧。
#include <iostream>
using namespace std;
int main()
{
float x,m;
x = 0;
float a, b;
cin >> a >> b;
m = 2 * a * x + 3 * b - 5;
while (m != 0) {
if (m > 0 && a > 0){
x = x - 0.1;
m = 2 * a * x + 3 * b - 5;
}
if (m < 0 && a>0) {
x = x + 0.1;
m = 2 * a * x + 3 * b - 5;
}
if (m > 0 && a < 0) {
x = x + 0.1;
m = 2 * a * x + 3 * b - 5;
}
if (m < 0 && a < 0) {
x = x - 0.1;
m = 2 * a * x + 3 * b - 5;
}
}
cout << x;
}