分數的表示 1.如果分數為負,負號放到分子上 2.如果分數為0,分子為0,分母為1 3.分子分母沒有除1以為的公約數(化簡) 分數的化簡 分三步: 1.調整分子分母的負號 2.處理分數為0的情況 3.約分:分子分母絕對值的最大公約數。 ...
分數的表示
struct Fraction{//分數
int up,down;//分子分母
};
1.如果分數為負,負號放到分子上
2.如果分數為0,分子為0,分母為1
3.分子分母沒有除1以為的公約數(化簡)
分數的化簡
分三步:
1.調整分子分母的負號
2.處理分數為0的情況
3.約分:分子分母絕對值的最大公約數。
Fraction reduction(Fraction A){
if(A.down<0){
A.down*=-1;
A.up*=-1;
}
if(A.up==0) A.down=1;
else{
int d=gcd(abs(A.down),abs(A.up));
A.down/=d;
A.up/=d;
}
return A;
}
分數的加減乘除太簡單,不贅述。(除法註意判斷除數的分子是否為0)
分數的輸出
- 化簡
- 分母是否為1(是否為整數)
- 分子的絕對值是否大於分母(是否為假分數)
void showFraction(Fraction A){
A=reduction(A);
if(r.down==1)printf("%ld",r.up);
else if(abs(A.up)>abs(A.down)){
printf("%d %d/%d",A.up/A.down,abs(A.up),abs(A.down));
}
else printf("%d/%d",A.up,A.down);
}