OC2_分数类
//
// Fraction.h
// OC2_分数类
//
// Created by zhangxueming on 15/6/10.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h> @interface Fraction : NSObject
{
NSInteger _numerator;
NSInteger _denominator;
} - (id)initWithNumerator:(NSInteger)aNumerator andDenominator:(NSInteger)aDenominator; - (NSInteger)numerator;
- (NSInteger)denominator; - (void)setNumerator:(NSInteger)aNumerator;
- (void)setDenominator:(NSInteger)aDenominator;
- (void)setNumerator:(NSInteger)aNumerator andDenominator:(NSInteger)aDenominator; - (void)addFraction:(Fraction *)aFraction;
- (void)subFraction:(Fraction *)aFraction;
- (void)mulFraction:(Fraction *)aFraction;
- (void)divFraction:(Fraction *)aFraction; - (void)reduceFraction; - (void)printFraction; + (void)testFraction; @end
//
// Fraction.m
// OC2_分数类
//
// Created by zhangxueming on 15/6/10.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "Fraction.h" @implementation Fraction - (id)initWithNumerator:(NSInteger)aNumerator andDenominator:(NSInteger)aDenominator
{
if (self = [super init]) {
_numerator = aNumerator;
_denominator = aDenominator;
}
return self;
} - (NSInteger)numerator
{
return self->_numerator;
}
- (NSInteger)denominator
{
return self->_denominator;
} - (void)setNumerator:(NSInteger)aNumerator
{
self->_numerator = aNumerator;
}
- (void)setDenominator:(NSInteger)aDenominator
{
self->_denominator = aDenominator;
} - (void)setNumerator:(NSInteger)aNumerator andDenominator:(NSInteger)aDenominator
{
self->_numerator = aNumerator;
self->_denominator = aDenominator;
} - (void)addFraction:(Fraction *)aFraction
{
self->_numerator = [self numerator] * [aFraction denominator] + [self denominator] * [aFraction numerator];
self->_denominator = [self denominator] * [aFraction denominator];
}
- (void)subFraction:(Fraction *)aFraction
{
self->_numerator = [self numerator] * [aFraction denominator] - [self denominator] * [aFraction numerator];
self->_denominator = [self denominator] * [aFraction denominator];
} - (void)mulFraction:(Fraction *)aFraction
{
_numerator = [self numerator] * [aFraction numerator];
_denominator = [self denominator] * [aFraction denominator];
} - (void)divFraction:(Fraction *)aFraction
{
_numerator = [self numerator] * [aFraction denominator];
_denominator = [self denominator] * [aFraction numerator];
} - (void)reduceFraction
{
NSInteger n = _numerator;
NSInteger d = _denominator;
while (d) {
NSInteger temp = n%d;
n = d;
d = temp;
}
_numerator /= n;
_denominator /= n;
} - (void)printFraction
{
NSLog(@"%ld/%ld", [self numerator], [self denominator]);
} + (void)testFraction
{
Fraction *f1 = [[Fraction alloc] initWithNumerator: andDenominator:];
Fraction *f2 = [[Fraction alloc] init];
[f2 setNumerator: andDenominator:];
[f1 addFraction:f2];
[f1 reduceFraction];
[f1 printFraction];
}
@end
//
// main.m
// OC2_分数类
//
// Created by zhangxueming on 15/6/10.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h>
#import "Fraction.h" int main(int argc, const char * argv[]) {
@autoreleasepool {
[Fraction testFraction];
}
return ;
}
OC2_分数类的更多相关文章
- 连分数(分数类模板) uva6875
//连分数(分数类模板) uva6875 // 题意:告诉你连分数的定义.求连分数,并逆向表示出来 // 思路:直接上分数类模板.要注意ai可以小于0 #include <iostream> ...
- 第十七周oj刷题——Problem B: 分数类的四则运算【C++】
Description 编写分数类Fraction,实现两个分数的加.减.乘和除四则运算.主函数已给定. Input 每行四个数,分别表示两个分数的分子和分母,以0 0 0 0 表示结束. Outpu ...
- Problem F: 分数类的类型转换
Description 封装一个分数类Fract,用来处理分数功能和运算,支持以下操作: 1. 构造:传入两个参数n和m,表示n/m:分数在构造时立即转化成最简分数. 2. show()函数:分数 ...
- Problem E: 分数类的输出
Problem E: 分数类的输出 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 2699 Solved: 1227[Submit][Status][ ...
- java的分数类
概述 分数类在算法中非常重要, 而在java中不那么重要,java基础类库提供 了biginteger了,提供类似方式, package 组合数学; public class Fraction { p ...
- UVA 10288 Coupons---概率 && 分数类模板
题目链接: https://cn.vjudge.net/problem/UVA-10288 题目大意: 一种刮刮卡一共有n种图案,每张可刮出一个图案,收集n种就有奖,问平均情况下买多少张才能中奖?用最 ...
- 【Java例题】2.2 分数类
2.定义分数类,包括分子和分母变量.构造方法. 加减乘除方法.化简方法.值计算方法和显示分子和分母的方法. 然后编写一个主类,在其主方法中通过定义两个分数对象来 显示每一个分数的分子值.分母值.化简和 ...
- 【作品】超实用C++分数类
引言 我们说,编程语言的精髓在于封装,而面向对象语言完胜面向过程语言的原因就是具有更好的可封装性,而C++就是这样的一种多范型语言,常用而复杂的工作完全不必在每一份源文件中重敲,就好像我们不需要自己手 ...
- hdu 6206 : Apple 【计算几何 + 分数类】
题目链接 比赛时C++上__float128都被卡精度,然后扔给队友用Java的BigDecimal过了 算法不多说,求三角形外心可以参考 维基百科 https://zh.wikipedia.org/ ...
随机推荐
- MongoDB介绍及下载与安装
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.M ...
- Java编程 -- 命名规范
转自:http://www.hawstein.com/posts/google-java-style.html#Naming 命名约定 5.1 对所有标识符都通用的规则 标识符只能使用ASCII字母和 ...
- Azure 云服务中的实例端点
Azure云服务(cloud Servive)中有三种端点类型(endpoint type):输入端点(input);内部端点(internal);实例端点(InstanceInput) 1.输入端点 ...
- 注入限制绕过<转>
突然想我们是否可以用什么方法绕过SQL注入的限制呢?到网上考察了一下,提到的方法大多都是针对AND与“'”号和“=”号过滤的突破,虽然有点进步的地方,但还是有一些关键字没有绕过,由于我不常入侵网站所以 ...
- Swift入坑--block的定义
typealias methodCompletionBlock = (String)->Void
- XML文件
XML 指可扩展标记语言(eXtensible Markup Language) XML 被设计用来传输和存储数据. 什么是 XML? XML 指可扩展标记语言 XML 是一种标记语言,非常类似 HT ...
- ThinkPHP CURD方法盘点:table方法
table方法也属于模型类的连贯操作方法之一,主要用于指定操作的数据表. 用法 一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用table方法的情况通常是为了:切换操作的数据表: ...
- [Sciter系列] MFC下的Sciter–1.创建工程框架
Sciter SDK中提供的Win32下例程很多,唯独使用很多(对我个人而言)的MFC框架下Sciter程序的构建讲的很少,虽然MFC有这样那样的诟病,但是不可否认的是编写一般的小项目,这仍然是大 ...
- Funambol Developer's Guide 中 connector development样例的问题
今天学习Funambol的connector开发,官方文档中的样例有问题. 首先,文档中提供的maven命令不可用: mvn archetype:generate -DarchetypeGroupId ...
- File transfer in android with asmack and Openfire
http://harryjoy.com/2012/08/18/file-transfer-in-android-with-asmack-and-openfire/ http://www.javacod ...