• 分数相加的例题


    方法为:a/b+c/d=( (a*d)+(b*c) )/(b*d) 
    (1).h文件
    #import <Foundation/Foundation.h>

     

    @interface Fraction : NSObject  //fraction分数

     

    @property int numerator,denominator;//denominator分母 numerator分子
    -(void)print;
    -(void)setTo:(int)n over :(int)d;
    -(double) convertToNum;     //convertion转换
    -(void)add:(Fraction *)f;
    -(void)reduce;              //reduce减少

     

    @end
    (2).m文件
    #import"Fraction.h"

     

    @implementationFraction

     

    @synthesizenumerator,denominator;
    -(void)print
    {
       NSLog(@"%i/%i",numerator,denominator);
    }

     

    -(double)convertToNum
    {
       if(denominator!=0)
        {
           return(double)numerator/denominator;
        }
       else
           returnNAN;
    }
    -(void)setTo:(int)n over:(int)d
    {
       numerator=n;
       denominator=d;
    }

     

    //添加Fraction到消息接受
    -(void)add:(Fraction*)f
    {
       //添加两个分数:                                             
       //a/b+c/d=((a*d)+(b*c))/(b*d)          //两个分数相加的另一种求法
       
       numerator=numerator* f.denominator+denominator* f.numerator;  //这里的*是乘的意思
       denominator=denominator* f.denominator;
    }

     

    -(void)reduce
    {
       intu=numerator;
       intv=denominator;
       inttemp;
       
       while(v!=0) {
            temp=u%v;
            u=v;               //求最大公约数的方法
            v=temp;
        }
       numerator/=u;               这两步是化简分数
       denominator/=u;
    }

     

    @end

  • 相关阅读:
    自主问题--KMP算法
    题解--luogu--CSP2019.S.Day2.T4--Emiya 家今天的饭
    浅谈——RMQ
    浅谈——LCA
    NOIP(si le)或者CSP初赛之——前序中序后序,前缀中缀后缀
    浅说——查分约束
    浅说——tarjan
    C++ RQNOJ 星门龙跃
    C++ 洛谷 1261:【例9.5】城市交通路网
    刷题
  • 原文地址:https://www.cnblogs.com/iQingYang/p/5245543.html
Copyright © 2020-2023  润新知