C++分数表达式加减运算实现

基于C++实现两个分数的加减法 C++,分数加减法,最大公约数,最小公倍数 阅读详情

C++11虽然有radio库,但用起来也没那么方便
代码简单易懂,就不注释了

 string fractionAddition(string expression) {
        expression.push_back('+');
        vector<int> fenzi;
        vector<int> fenmu;
        int i=expression[0]=='-'?0:-1,j=0;
        while(j<expression.size()){
            //cout<<i<<" "<<j<<endl;
            if(expression[j]=='/'){
                int t=atoi(expression.substr(i+1,j-i-1).c_str());
                if(i>=0&&expression[i]=='-') t*=-1;
                fenzi.push_back(t);
                i=j;
            }
            else if(expression[j]=='+'||(expression[j]=='-'&&j!=0)){
                fenmu.push_back(atoi(expression.substr(i+1,j-i-1).c_str()));
                i=j;
            }
            ++j;
        }
        int fm=1;
        int fz=0;
        for(int& f:fenmu) fm*=f;
        for(int i=0;i<fenzi.size();++i){
            //cout<<fenzi[i]<<" "<<fenmu[i]<<endl;
            fz+=fenzi[i]*fm/fenmu[i];
        }
        int _gcd=gcd(fz,fm);    //gcd函数需要C++17版本
        //cout<<fz<<" "<<fm<<" "<<_gcd<<endl;
        return to_string(fz/_gcd)+"/"+to_string(fm/_gcd);
    }
C++分数简单的加减法 1、分数相加,两个分数分别是1/5和7/20,相加之后得11/20,方法是先求出两个分数分母的最小公倍数,再求出两个分子的和,最后的约简结果分数的分子分母,如果两个分数相加的结果是4/8,则必须将其约简成最简的分数形式1/2,即用分数的分子分母同时除以两个数的最大公约数,试建立一个分数类Fract,完成分数的相应运算功能,具体要求如下: (1)私有成员变量 int num,den; num为分子,den为分母 (2)公有成员函数 Fract(int a=0,int b=1):构造函数,用a和b初始化分子和分 阅读详情

相关推荐

分数计算器 C++ 实现分数计算、分数排序

这是学校作业,做了就直接发上来了。 可以根据自己需要改。 #include<iostream> #include<string> #include<vector> #include<functional> #include<algorithm> using namespace std; class Fraction { public: //无参造函数 Fraction() : numer(0), deno(1) { } //带

Kasiki的博客 5166

c++分数加减乘除

#include using namespace std; int fn(int a,int b); class fraction//分数类声明 { public://外部接口 fraction(int FZ=0,int FM=0)//构造函数 { fz=FZ ; fm=FM ; } friend fraction operator + ( fraction c1, fraction

娃娃鼠小抄 5568

离线安装PlutoSDR硬件支持包全攻略:没有MathWorks账号也能搞定MATLAB集成

本文详细介绍了在没有MathWorks账号和网络环境的情况下,如何离线安装PlutoSDR硬件支持包并实现MATLAB集成的完整解决方案。从驱动安装、设备识别到MATLAB支持包的离线部署,提供了全面的步骤指导和常见问题排查方法,特别适合高校实验室、军工单位等内网环境使用。

js777的博客 268

课程设计 分数的加减乘-- c++实现

【问题描述】 用分数形式表示的有理数类如下(C++语言描述):class Rational{ private: int x,y; public: Rational(int a=1,int b=1); Rational Add(Rational &r); Rational Sub(Rational &r); Rational Mul(Rational &r); Rational Div(Rational &r); Rational operator+(Rational .

m0_57006708的博客 797

DCA决策曲线的解读和代码实现

0.决策曲线 决策曲线分析法(Decision Curve Analysis,DCA)是个与ROC曲线相提并论的相对比较新的模型评价方法。 关于它的原理,长篇大论的医学统计学知识解读实在不是我的强项,放上两个链接偷偷懒: https://www.plob.org/article/12455.html https://www.iikx.com/news/statistics/1622.html 如果想看文章,这篇里的fig7就是:https://www.ncbi.nlm.nih.gov/pmc/artic

weixin_42960896的博客 1万+

手把手教你用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD)

本文详细介绍了如何使用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD),从软件安装、界面设置到基础项目创建和高级功能应用,手把手指导工程师完成系统可靠性分析。通过实际案例演示,帮助用户掌握RBD建模技巧,提升系统可靠性评估效率。

weixin_26765287的博客 633

分数混合加减和查找

表达式中分数的存储,要求使用函数题中的FractionL类对象来存储分数,并通过下标运算符[]完成对FractionL类对象的成员p的对应元素的赋值。将分母统一设为1的原因是为了与“约分完后分母有可能为1”的情况统一,这两种情况便可以在输出时统一处理:当分母为1时,输出分子。读入下一个分数n1/n2,存入fl(fl[i]=Fraction(n1,n2)(1) 定义int变量n1,n2,i=0,分别用来存储读入分数的分子、分母,以及分数个数。(1) 处理分子为 0 的情况:如果分子为0,分母设置为1,返回。

Ct314的博客 1991

PLC与变频器联动控制:从开关量、模拟量到通讯的接线与编程实战

在工业自动化系统中,电机调速控制是核心需求之一,其关键在于实现可编程逻辑控制器(PLC)与变频器之间的可靠联动。其基本原理是通过PLC输出控制信号,由变频器接收并驱动电机按设定速度运行。这项技术的核心价值在于实现电机的软启停、精确调速与节能控制,广泛应用于风机、水泵、传送带及精密张力控制等场景。其中,开关量控制以其接线简单、抗干扰能力强的特点,成为基础且可靠的方案;而模拟量控制则能实现无级平滑调速,满足更高精度的工艺要求。本文以西门子、三菱等主流品牌为例,深入解析了这两种主流控制方式的硬件接线、参数设置与梯

1270

Leetcode592. 分数加减

分数加减法计算

obrcnh的博客 983

别再到处找包了!Keil5芯片支持包(Pack)最全管理指南:安装、更新、迁移与离线备份

本文详细解析了Keil5芯片支持包(Pack)的全生命周期管理,包括安装、更新、迁移与离线备份的工程化解决方案。针对STM32F10x等常见芯片,提供了高效获取Pack的策略、版本管理技巧及团队协作方案,帮助开发者解决常见的'Device Family Pack missing'等问题,提升嵌入式开发效率。

weixin_28729205的博客 542

QMT量化交易实战:如何用通达信预警数据自动买卖股票(附完整Python代码)

本文详细介绍了如何利用QMT平台结合通达信预警数据实现股票自动化交易,提供完整的Python代码实现。通过实时监控通达信预警板块文件,系统自动执行买卖操作,提升交易效率。文章涵盖系统架构设计、数据对接、信号处理、订单执行等核心模块,适合量化交易初学者和通达信用户参考实践。

weixin_29251567的博客 678

1.5编程基础之循环控制--33:计算分数加减表达式的值

33:计算分数加减表达式的值 原文地址 描述 编写程序,输入n的值,求 1/1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 - 1/8 + … + (-1)n-1·1/n 的值。 输入 输入一个正整数n。1 <= n <= 1000。 输出 输出一个实数,为表达式的值,保留到小数点后四位。 样例输入 2 样例输出 0.5000 源码 #include &lt...

goubacaiqiang的博客 933

深度学习笔记(3)——kernel(内核)与filter(滤波器)

本文仅仅简单介绍了kernel和filter的概念,介绍了确定filter和kernel个数的方法。

cs111211的博客 7141

[leetcode-592-Fraction Addition and Subtraction]

Given a string representing an expression of fraction addition and subtraction, you need to return the calculation result in string format. The final result should be irreducible fraction. If your ...

weixin_34212189的博客 102

企业如何开展BI建设--指标体系建设

很多企业的数字化转型工作都是从做BI项目开始的,很多企业认为,BI就是做指标大屏,所以做了很多的驾驶舱,也做了很多指标,有从系统取的,有手工填报的,甚至手工填报的比例占到了70%,最终BI沦为了填报系统,业务认为BI就是把从线下的微信沟通转到了线上录入展示,并没有给业务代来任何提升,久而久之,BI大屏就没人关心,公司高层也认为数据都是填报的,都经过了加工处理,这种数据不可信,不能反映业务开展的实际。其实在BI系统建设之前,我们首先要做的就是要梳理企业的指标,到底我们要展示哪些指标?

263

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C++ 第四章第一节 for语句(四)

信息学奥赛一本通电子版详解15

baby_dinosaur的博客 1013

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

leetcode592+流式计算一堆分数的结果,字符流操作

https://leetcode.com/problems/fraction-addition-and-subtraction/description/ class Solution { public: int gcd(int a, int b) { return (b==0)? a:gcd(b, a%b); } string fractionA...

小堃哥的专栏 388

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

个人项目总结

class fenshu { public: int fenzi; int fenmu; fenshu(){ fenzi = 1; fenmu = 1; } fenshu(int a, int b) { fenzi = a; fenmu = b; ...

weixin_30821731的博客 96

从NOJ分数加减法看高精度计算与算法优化实战

分数运算作为基础数学概念,在编程实现中涉及核心算法原理如最大公约数与辗转相除法。其技术价值在于处理大规模、高精度数据时保证计算精确性,避免溢出问题。应用场景广泛,从算法竞赛题目到金融、科学计算的工程实践都需要鲁棒的分数处理能力。本文通过解析一道典型OJ题目,深入探讨了优化通分策略、高精度整数实现及边界处理,并自然融入了复杂数据和算法优化等热词,为开发者提供系统解决方案。

weixin_30879833的博客 406

运算符重载(++ --)

#include using namespace std; class F{ int n; int d; private: void reduce() { int mcd = maxcd(n if(mcd != 1) n/=mcd,d/=mcd; } public: static int maxcd(int a,int b)//静态成员函数 工具函数 不依赖于某个对

VZHMY的博客 460

LC 592. Fraction Addition and Subtraction

Given a string representing an expression of fraction addition and subtraction, you need to return the calculation result in string format. The final result should beirreducible fraction. If your ...

weixin_30835933的博客 118

小学四则运算1.0

//信1301-1班 张鹏宇 四则运算 #include<iostream> #include<stdio.h> #include<time.h> using namespace std; void main(){ int num1,num2,num3,num4; int a,b; int i; sran...

weixin_30507481的博客 71

老题新解|计算分数加减表达式的值

信息学奥赛一本通第69题:计算分数加减表达式的值 $S_n=\frac{1}{1}-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+\frac{1}{5}-\frac{1}{6}+...+(-1)^{n-1}\times\frac{1}{n}$。 >输入一个整数 $n$,求 $S_n$。

程序员莫小特的编程世界 1737

[csu/coj 1619] 递归

题意:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1619 思路:由于式子具有递归的性质,考虑递归解,中间结果会超64位int,需用大数。另外自己写了个分数类,见代码。 1 #pragma comment(linker, "/STACK:10240000,10240000") 2 3 #include...

weixin_30826761的博客 102

洛谷——P1572 计算分数

P1572 计算分数 模拟+字符串 注意有两位数的情况以及负数情况 #include<bits/stdc++.h> using namespace std; string s; int a[1006],b[1006],tot,kp[1006]; int gcd(int x,int y) { return !y?x:gcd(y,x...

weixin_30853329的博客 380

c语言(1%3c%3cn),Scala 中的函数式编程基础(二)

主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 《Functional Programming Principles in Scala》。2. Higher Order Functions把其他函数作为参数或者作为返回值,就是 higher order functions,python 里面也可以看到这样使用的情形。在酷壳上的博客有一个例子就是将函数...

weixin_31861055的博客 6537
上一篇: 【精选】一篇文章带你搞懂排列算法题【面向面试】
下一篇: leetcode640求解方程C++代码
RealWeakCoder
博客等级 码龄7年 236粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值