分数运算C++代码实现
生活随笔
收集整理的這篇文章主要介紹了
分数运算C++代码实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
求兩個分數的和:思路:首先兩個分數的分母相乘,各自的分子分別乘以對方的分母,然后再利用輾轉相除算法去求分子和分母的最大公約數。需要注意的一點是在利用類進行定義求和函數的時候要把參數sum和add也定義為類,因為sum和add包含分子和分母,是一個整體,當然你也可以不去定義但是程序寫起來比較冗余,體驗不到c++類的優勢。代碼如下:
#include<iostream> using namespace std; class Fract {int num,den;public:Fract(int a=0,int b=1)//構造函數初始化分子和分母 {num=a;den=b;}int gcd(int m,int n)//輾轉相除算法求最大公約數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位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的分数运算C++代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求两个数集的并集C++代码实现
- 下一篇: 超长数列中n个整数排序C++代码实现