【笔记】输入a,b后,输出一元一次方程2*a*x +3*b-5 = 0的解

以下为自己在做上机练习的笔记记录,仅作参考;

软件: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;

    
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值