Objective c 分数之间的加减乘除 约分,最大公约数

1.h

//

//  Fenshu.h

//  Oc_Eop

//@IOS荣天

//  Created by Ibokan on 12-7-28.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

#import <Foundation/Foundation.h>

@interface Fenshu : NSObject

{

    int _fenzi;

    int _fenmu;

}

@property (nonatomic,assign)int fenzi;

@property (nonatomic,assign)int fenmu;

//自定义类的初始化方法

+ (id)fenshuWithFenzi:(int) newFenzi Fenmu:(int) newFenmu;

- (id)initWithFenzi:(int) newFenzi Fenmu:(int) newFenmu;

//加法

- (Fenshu *)jiafa:(Fenshu *)num1;

//减法

- (Fenshu *)jianfa:(Fenshu *)num1;

//乘法

- (Fenshu *)chengfa:(Fenshu *)num1;

//除法、

- (Fenshu *)chufa:(Fenshu *)num1;

//约分方法

- (Fenshu *)yuefen:(Fenshu *)num1;

//最大公约数

- (int)shuMax:(Fenshu *)num1;

@end


2.

 

//

//  Fenshu.m

//  Oc_Eop

//

//  Created by Ibokan on 12-7-28.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import "Fenshu.h"


@implementation Fenshu

@synthesize fenzi=_fenzi, fenmu=_fenmu;

+ (id)fenshuWithFenzi:(int) newFenzi Fenmu:(int) newFenmu

{

    Fenshu *fenshu=[[Fenshu alloc]initWithFenzi:newFenzi Fenmu:newFenmu];

                    return fenshu;

}

- (id)initWithFenzi:(int) newFenzi Fenmu:(int) newFenmu

{

    self=[super init];

    if(self)

    {

        self.fenzi=newFenzi;

        self.fenmu=newFenmu;

    }

    return self;

}

                

//加法

- (Fenshu *)jiafa:(Fenshu *)num1

{

   

    

    num1.fenzi=(self.fenzi*num1.fenmu)+(num1.fenzi*self.fenmu);

    num1.fenmu=self.fenmu*num1.fenmu;

    num1=[self yuefen:num1];

    return num1;


}

//减法

- (Fenshu *)jianfa:(Fenshu *)num1

{

    num1.fenzi=(self.fenzi*num1.fenmu)-(num1.fenzi*self.fenmu);

    num1.fenmu=self.fenmu*num1.fenmu;

    num1=[self yuefen:num1];

    return num1;

}

//乘法

- (Fenshu *)chengfa:(Fenshu *)num1

{

    num1.fenzi=self.fenzi*num1.fenzi;

    num1.fenmu=self.fenmu*num1.fenmu;

   num1= [self yuefen: num1];

    return num1;

}

//除法、

- (Fenshu *)chufa:(Fenshu *)num1

{

    num1.fenzi=num1.fenzi*self.fenmu;

    num1.fenmu=num1.fenmu*self.fenzi;

    num1=[num1 yuefen:num1];

    return num1;

}

//约分方法

- (Fenshu *)yuefen:(Fenshu *)num1

{

    int i=[num1 shuMax:num1];

    num1.fenzi/=i;

    num1.fenmu/=i;

    return num1;    

}

//最大公约数

- (int)shuMax:(Fenshu *)num1

{

    int flag=num1.fenzi<num1.fenmu?num1.fenzi:num1.fenmu;

    for(int i=flag;i>=0;i--)

    {

        if(num1.fenzi%i==0&&num1.fenmu%i==0)

        {

            return i;

        }

    }

    return 1;

}

@end


3.

 

//

//  main.m

//  Oc_Eop

//@IOS荣天

//  Created by Ibokan on 12-7-28.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "Fenshu.h"

int main (int argc, const char * argv[])

{


  

    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc]init];

     Fenshu *fenshu1=[[Fenshu alloc]initWithFenzi:1 Fenmu:2];

    Fenshu *fenshu=[[Fenshu alloc]initWithFenzi:1 Fenmu:3];

    Fenshu *fenshu7=[Fenshu fenshuWithFenzi:2 Fenmu:7];//类的初始化方法实现

   

    Fenshu *fenshu3=[[Fenshu alloc]initWithFenzi:0 Fenmu:0];

    //jiafa  jianfa  chengfa   chufa

    fenshu3=[fenshu chufa:fenshu7];

    NSLog(@"%d/%d",fenshu3.fenzi,fenshu3.fenmu);


    //[fenshu3 release];

    [pool drain];

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值