分数运算C++代码实现
生活随笔
收集整理的這篇文章主要介紹了
分数运算C++代码实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
求兩個(gè)分?jǐn)?shù)的和:思路:首先兩個(gè)分?jǐn)?shù)的分母相乘,各自的分子分別乘以對(duì)方的分母,然后再利用輾轉(zhuǎn)相除算法去求分子和分母的最大公約數(shù)。需要注意的一點(diǎn)是在利用類進(jìn)行定義求和函數(shù)的時(shí)候要把參數(shù)sum和add也定義為類,因?yàn)閟um和add包含分子和分母,是一個(gè)整體,當(dāng)然你也可以不去定義但是程序?qū)懫饋?lái)比較冗余,體驗(yàn)不到c++類的優(yōu)勢(shì)。代碼如下:
#include<iostream> using namespace std; class Fract {int num,den;public:Fract(int a=0,int b=1)//構(gòu)造函數(shù)初始化分子和分母 {num=a;den=b;}int gcd(int m,int n)//輾轉(zhuǎn)相除算法求最大公約數(shù)GCD{int r;if(m<n){r=m;m=n;n=r;}while(r=m%n){m=n;n=r;}return n;}Fract add(Fract f);void show(){cout<<num<<"/"<<den<<endl;} }; Fract Fract::add(Fract f) {Fract sum;sum.den=den*f.den;sum.num=f.den*num+den*f.num;int x=gcd(sum.num,sum.den);sum.num=sum.num/x;sum.den=sum.den/x;return sum; } int main() {Fract f1(1,5),f2(2,3),f3;f3=f1.add(f2);f3.show();return 0; }?
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的分数运算C++代码实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求两个数集的并集C++代码实现
- 下一篇: html旋转代码_付费?是不可能的!20