当前位置: 首页>>代码示例>>C++>>正文


C++ Rational::getDigit方法代码示例

本文整理汇总了C++中Rational::getDigit方法的典型用法代码示例。如果您正苦于以下问题:C++ Rational::getDigit方法的具体用法?C++ Rational::getDigit怎么用?C++ Rational::getDigit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Rational的用法示例。


在下文中一共展示了Rational::getDigit方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: halfOf

// Pre:
// 	1) a >= 0
// Constructively returns floor(a/2)
// Changes the remainder of a, possibly
Rational halfOf(Rational a) {
	if(a.getLength() == 1 && a.getDigit(0) == 0)
		return Rational ("0");
	string c = "";	
	stringstream ss;
	int curr = 0;
	int i = a.getLength()-1;
	int innerZeros = 0;
	while(i >= 0) {
		curr = 10*curr + a.getDigit(i);
		if(curr/2 > 0 || innerZeros) {
			innerZeros = 1;
			ss.str(string());
			ss << curr/2;
			c +=  ss.str();		
		}
		curr = curr%2;
		i--;
	}

	Rational d (c);
	if(a.getDigit(0)%2 == 1)
		d.setRemainder(1);
	return d;
}
开发者ID:flippedAben,项目名称:comprog,代码行数:29,代码来源:julka.cpp

示例2: subtract

// Pre:
// 	1) a >= b
// Constructively returns a-b
Rational subtract(Rational a, Rational b) {
	Rational c ("0");
	int i = 0;
	while(i < a.getLength()) {
		if(a.getDigit(i) >= b.getDigit(i))
			c.setDigit(i,a.getDigit(i)-b.getDigit(i));
		else {
			c.setDigit(i,a.getDigit(i)+10-b.getDigit(i));
			a.setDigit(i+1,a.getDigit(i+1)-1);
		}	
		i++;
	}	
	while(i > 1 && c.getDigit(i-1) == 0)
		i--;
	c.setLength(i);
	return c;
}
开发者ID:flippedAben,项目名称:comprog,代码行数:20,代码来源:julka.cpp

示例3: add

// Constructively returns a+b
Rational add(Rational a, Rational b) {
	int max = ((a.getLength() > b.getLength()) ? a.getLength() : b.getLength());
	int i = 0;
	Rational c ("0");
	c.setLength(max);
	while(i < max) {
		c.setDigit(i, c.getDigit(i) + a.getDigit(i) + b.getDigit(i));
		if(c.getDigit(i) > 9) {
			c.setDigit(i, c.getDigit(i)%10);
			c.setDigit(i+1, c.getDigit(i+1)+1);
			if(i == max-1)
				c.setLength(c.getLength()+1);
		}
		i++;
	}
	return c;
}
开发者ID:flippedAben,项目名称:comprog,代码行数:18,代码来源:julka.cpp


注:本文中的Rational::getDigit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。