資源簡介
Fraction類使用屬性的方法,實現(xiàn)了分?jǐn)?shù)的約分,打印,加法,減法,乘法,除法四則運算

代碼片段和文件信息
//
//??Fraction.m
//??NewFraction
//
//??Created?by?dllo?on?15/10/15.
//??Copyright?(c)?2015年?ZKJ.?All?rights?reserved.
//
#import?“Fraction.h“
@implementation?Fraction
/**
?*??自定義初始化
?*
?*??@param?numerator???分子
?*??@param?denominator?分母
?*
?*??@return?分?jǐn)?shù)對象
?*/
-?(instancetype)initWithNumerator:(NSInteger)numerator?withDenominator:(NSInteger)denominator?{
????
????self?=?[super?init];
????if?(self)?{
????????_numerator?=?numerator;
????????_denominator?=?denominator;
????}
????return?self;
}
/**
?*??便利構(gòu)造器
?*
?*??@param?numerator???分子
?*??@param?denominator?分母
?*
?*??@return?分?jǐn)?shù)類
?*/
+?(instancetype)fractionWithNumerator:(NSInteger)numerator?withDenominator:(NSInteger)denominator?{
????
????Fraction?*fraction?=?[[Fraction?alloc]?initWithNumerator:numerator?withDenominator:denominator];
????return?fraction;
}
/**
?*??打印分?jǐn)?shù)方法
?*/
-?(void)print?{
????NSLog(@“%ld/%ld“?_numerator?_denominator);
}
/**
?*??約分
?*/
-?(void)reduce?{
????//對分子是負(fù)數(shù)的情況進(jìn)行考慮
????NSInteger?numerator?=?_numerator?>?0???_numerator?:?-_numerator;
????NSInteger?denominator?=?_denominator;
????NSInteger?gcd;
????
//????輾轉(zhuǎn)相除法得最大公約數(shù),考慮分子是0的情況
????if?(_numerator?==?0)?{
????????return;
????}?else?{
????????while?(numerator)?{
????????????gcd?=?denominator?%?numerator;
????????????denominator?=?numerator;
????????????numerator?=?gcd;
????????}
????????gcd?=?denominator;
????????
????????_numerator?/=?gcd;
????????_denominator?/=?gcd;
????}
}
/**
?*??分?jǐn)?shù)加法運算
?*
?*??@param?antherFraction?傳進(jìn)來的對象
?*
?*??@return?分?jǐn)?shù)對象
?*/
-?(Fraction?*)addFraction:(Fraction?*)antherFraction?{
????
????Fraction?*result?=?[Fraction?fractionWithNumerator:_numerator?*?antherFraction.denominator?+?_denominator?*?antherFraction.numerator?withDenominator:_denominator?*?antherFraction.denominator];
????
????[result?reduce];
????
????return?result;
}
/**
?*??減法運算
?*
?*??@param?antherFraction?減數(shù)
?*
?*??@return?分?jǐn)?shù)對象
?*/
-?(Fraction?*)subFraction:(Fraction?*)antherFraction?{
????
????Fraction?*result?=?[Fraction?fractionWithNumerator:_numerator?*?antherFraction.denominator?-?_denominator?*?antherFraction.numerator?withDenominator:_denominator?*?antherFraction.denominator];
????
????[result?reduce];
????
????return?result;
}
/**
?*??乘法
?*
?*??@param?antherFraction?乘數(shù)
?*
?*??@return?分?jǐn)?shù)對象
?*/
-?(Fraction?*)mulFraction:(Fraction?*)antherFraction?{
????
????Fraction?*result?=?[Fraction?fractionWithNumerator:_numerator?*?antherFraction.numerator?withDenominator:_denominator?*?antherFraction.denominator];
????
????[result?reduce];
????
????return?result;
}
/**
?*??除法
?*
?*??@param?antherFraction?除數(shù)
?*
?*??@return?分?jǐn)?shù)對象
?*/
-?(Fraction?*)divFraction:(Fraction?*)antherFraction?{
????
//????考慮除數(shù)為0的情況,提示出錯,并且返回調(diào)用對象本身
????if?(antherFraction.numerator?==?0)?{
????????NSLog(@“除數(shù)不能為0“);
????????return?self;
????}
????Fraction?*result?=?[Fraction?fractionWithNumerator:_numerator?*?antherFraction.denominator?withDenominator:_denominator?*?antherFraction.numerator];
????
????[result?reduce];
????
????return?result;
}
@end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-10-15?19:33??Fraction\
?????目錄???????????0??2015-10-15?19:40??Fraction\.git\
?????目錄???????????0??2015-10-15?19:33??Fraction\.git\branches\
?????文件??????????15??2015-10-15?19:33??Fraction\.git\COMMIT_EDITMSG
?????文件?????????137??2015-10-15?19:33??Fraction\.git\config
?????文件??????????73??2015-10-15?19:33??Fraction\.git\desc
?????文件??????????23??2015-10-15?19:33??Fraction\.git\HEAD
?????目錄???????????0??2015-10-15?19:33??Fraction\.git\hooks\
?????文件?????????452??2015-10-15?19:33??Fraction\.git\hooks\applypatch-msg.sample
?????文件?????????896??2015-10-15?19:33??Fraction\.git\hooks\commit-msg.sample
?????文件?????????189??2015-10-15?19:33??Fraction\.git\hooks\post-update.sample
?????文件?????????398??2015-10-15?19:33??Fraction\.git\hooks\pre-applypatch.sample
?????文件????????1642??2015-10-15?19:33??Fraction\.git\hooks\pre-commit.sample
?????文件????????1348??2015-10-15?19:33??Fraction\.git\hooks\pre-push.sample
?????文件????????4951??2015-10-15?19:33??Fraction\.git\hooks\pre-reba
?????文件????????1239??2015-10-15?19:33??Fraction\.git\hooks\prepare-commit-msg.sample
?????文件????????3611??2015-10-15?19:33??Fraction\.git\hooks\update.sample
?????文件?????????635??2015-10-15?19:33??Fraction\.git\index
?????目錄???????????0??2015-10-15?19:33??Fraction\.git\info\
?????文件??????????40??2015-10-15?19:33??Fraction\.git\info\exclude
?????目錄???????????0??2015-10-15?19:40??__MACOSX\
?????目錄???????????0??2015-10-15?19:40??__MACOSX\Fraction\
?????目錄???????????0??2015-10-15?19:40??__MACOSX\Fraction\.git\
?????目錄???????????0??2015-10-15?19:40??__MACOSX\Fraction\.git\info\
?????文件?????????171??2015-10-15?19:33??__MACOSX\Fraction\.git\info\._exclude
?????目錄???????????0??2015-10-15?19:33??Fraction\.git\logs\
?????文件?????????173??2015-10-15?19:33??Fraction\.git\logs\HEAD
?????目錄???????????0??2015-10-15?19:33??Fraction\.git\logs\refs\
?????目錄???????????0??2015-10-15?19:33??Fraction\.git\logs\refs\heads\
?????文件?????????173??2015-10-15?19:33??Fraction\.git\logs\refs\heads\master
?????目錄???????????0??2015-10-15?19:33??Fraction\.git\ob
............此處省略46個文件信息
評論
共有 條評論