[C++ ] 跨年禮物之二
class Fractions{
public:
Fractions(){
numerator = 1;
denominator = 1;
}//建構子 初始化分子分母的數值
int numerator;
int denominator;
void sum(Fractions &a, Fractions &b){
int tmp, x, y, GCD;
int D, N;
x = a.denominator;
y = b.denominator;
for(;x&&y;x%=y,tmp=x,x=y,y=tmp);
GCD = x > 0 ? x : y;
//找出最大公因數
D = a.denominator * b.denominator / GCD;
N = a.numerator * D / a.denominator + b.numerator * D / b.denominator;
x = D;
y = N;
for(;x&&y;x%=y,tmp=x,x=y,y=tmp);
GCD = x > 0 ? x : y;
//找出最大公因數 (輾轉相除法)
a.denominator = D / GCD;
a.numerator = N / GCD;
//對最後的結果約分
}
void display(void){
try{
throw denominator;
}
catch(int e){
if(e)
cout << numerator << "/" << denominator << endl;
}
//印出分數
}
};
只放加法部分 其他三種運算還是要大家想一下
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.209.87
→
01/01 00:45, , 1F
01/01 00:45, 1F
→
01/01 00:45, , 2F
01/01 00:45, 2F
推
01/01 00:47, , 3F
01/01 00:47, 3F
推
01/01 00:52, , 4F
01/01 00:52, 4F
→
01/01 01:11, , 5F
01/01 01:11, 5F