首页 > 其他分享 >分数重载

分数重载

时间:2023-05-16 09:22:27浏览次数:38  
标签:分数 f1 FS int fz count1 重载 fm

#include<iostream>
using namespace std;
class FS
{
private:
int fz;
int fm;
public:
FS()
{
fm=1;
fz=0;
}
void set(int m,int z)
{
fm=m;
fz=z;
}
void del()
{
fm=1;
fz=0;
}
FS operator + (const FS &f);
int huajian(int,int);
void display();
} ;

FS FS::operator +(const FS &f)
{
FS f1;
f1=f;
f1.fz=fz*f1.fm+f1.fz*fm;
f1.fm=fm*f1.fm;
return f1;
}

int FS::huajian(int Fenz,int Fenm)
{
while(Fenm!=0)
{
int temp=Fenz%Fenm;
Fenz=Fenm;
Fenm=temp;
}
return Fenz;
}

void FS::display()
{
if(fz==0)
{
cout<<"0z1m"<<endl;
}
else
{
int l=huajian(fz,fm);
fz=fz/l;
fm=fm/l;
if(fm<0)
{
fm=-1*fm;
fz=-1*fz;
}


if(fz%fm!=0)
{
cout<<fz<<"z"<<fm<<"m"<<endl;
}
if(fz%fm==0)
{
cout<<fz<<"z"<<"1m"<<endl;
}
}
}

int main()
{
FS fs;
FS fens[100];
string a[100];
int n;
cin>>n;
int l,k;
for(int i=0; i<2*n; i++)
{
cin>>a[i];
int fm=0,fz=0;
int o=0;
int u=0;
for(int j=0; j<a[i].size(); j++)
{
if(a[i][0]=='-')
{
o=1;
}
if(a[i][j]=='z')
{
l=j;
if(a[i][l+1]=='-')
{
u=1;
}
}

if(a[i][j]=='m')
{
k=j;
}
}
int count1=1,count2=1;
if(o==1)
{
for(int j=l-1; j>0; j--)
{
fz+=(a[i][j]-'0')*count1;
count1*=10;
}
fz=-1*fz;
}
else
{
for(int j=l-1; j>=0; j--)
{
fz+=(a[i][j]-'0')*count1;
count1*=10;
}
}

if(fz==0)
{
fens[i].set(0,0);
}
else
{
if(u==1)
{
for(int j=k-1; j>l+1; j--)
{
fm+=(a[i][j]-'0')*count2;
count2*=10;
}
fm=-1*fm;
}
else
{
for(int j=k-1; j>l; j--)
{
fm+=(a[i][j]-'0')*count2;
count2*=10;
}
}
fens[i].set(fm,fz);
}

fs=fs+fens[i];
if((i+1)%2==0)
{
fs.display();
fs.del();
}
}

return 0;
}

标签:分数,f1,FS,int,fz,count1,重载,fm
From: https://www.cnblogs.com/yuanxinglan/p/17403815.html

相关文章

  • 分数阶导数的基本概念与介绍
    重要参考华东师范大学潘建瑜教授第一讲分数阶微分方程维基百科分数微积分连接成功-知乎慢慢推导柯西重复积分公式维基百科Gamma函数以下是我的整理一、学习的思路我们熟知的是整数阶的微积分定义,分数阶微积分的定义一般就是由已知的定义推导而来的。所......
  • 先利用PCA做主成分分析,通过累计贡献率确定最佳主成分数,然后再进行BP回归预测分析,两个
    先利用PCA做主成分分析,通过累计贡献率确定最佳主成分数,然后再进行BP回归预测分析,两个算法已经都写在一起了,可以直接运行,不用分段运行。ID:2635668336340841......
  • 5.12 强制转换函数重载
    在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符。类型强制转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。经过适当重载后,(类型名)对象这个对对象进行强制类型转换的表达式就等价于对象.operator类型名(),即变成对运算符......
  • 分数比较
    分数比较:比较两个分数的大小。解题思路:输入两个分数,构造可以求出最小公倍数的函数,利用函数求出分母相同时两分子的大小,比较大小,根据要求输出结果。代码:#include<iostream>usingnamespacestd;intbei(intx,inty){   intt,temp,k=x*y;   if(x<y)   {......
  • [NOIP2009 普及组] 分数线划定
    [NOIP2009普及组]分数线划定题目描述世博会志愿者的选拔工作正在A市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的\(150\%\)划定,即如果计划录取\(m\)名志愿者,则面试分数......
  • 文本运算符的重载
    文本运算符重载,分为数值文本运算符,和字符串文本运算符。先看一下数值类型的文本运算符:constexprunsignedintoperator""_s(unsignedlonglongval){returnval/2;}constexprfloatoperator""_s2(longdoubleval){returnval/2;}整数类型,其参数要求必......
  • [SWPUCTF 2022 新生赛]base64 已解决 题目分数:213
    查壳:64位,操作系统是ubantu的,可能会有所不同稍加留意一下,进IDA:依旧是比较题,我们先看看s2里的内容:‘TlNTQ1RGe2Jhc2VfNjRfTlRXUTRaR0ROQzdOfQ==’目标是v3,看看v3调用的函数sub_124C:base64?看看是不是标准码:巨标准,那么直接base64解码就好了:得到NSSCTF{base_64_NTWQ4ZGDNC7N}......
  • Phred质量分数
    Phred质量分数是DNA测序数据中,用来评估碱基质量的一种标准化表示方法。它最初是由美国华盛顿大学的高通量测序专家PhredJ.在1997年发表的论文中提出的。Phred质量分数使用logarithmicscale(即对数刻度)来表示碱基质量值。一般取值范围为0-40之间,其中0表示最差的质量,40表示......
  • 列出真分数序列
    列出真分数序列:按递增顺序依次列出所有分母为40.分子小于40的最简分数。解题思路:利用for循环遍历所有分子的可能,在for循环中利用辗转相除法求出最大公约数,若最大公约数为1则输出,否则继续循环。代码:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){......
  • 打卡 数据的最大值问题(重载+函数模板)
    两个类如下设计:类Time有三个数据成员,hh,mm,ss,分别代表时,分和秒,并有若干构造函数和一个重载-(减号)的成员函数。类Date有三个数据成员,year,month,day分别代表年月日,并有若干构造函数和一个重载>(<)(大于号或者小于号)的成员函数。要求设计一个函数模板template<classT>doublemaxn(Tx[]......