[] Estructura de datos y estudio algoritmo de notas - "notas" puntuaciones de algoritmo -17 [dicho] simplificación y de salida

la representación fraccionaria

//分数的表示
struct Fraction {
	int up, down;//分子与分母
};

Simplificar fracciones

Puntuaciones de simplificación debe cumplir con tres principios:

  1. Cuando el denominador es negativo, mientras que el numerador y el denominador negados;
  2. Cuando una puntuación de cero (cuando la molécula es cero), el denominador debe ser 1;
  3. Numerador y el denominador no cuenta (excepto con el máximo común divisor) de la Convención, además de 1.
//求最大公约数
int gcd(int a, int b)
{
	return !b ? a : gcd(b, a%b);
}

//分数的化简
Fraction reduction(Fraction result)
{
	//原则一
	if (result.down < 0)
	{
		result.down = -result.down;
		result.up = -result.up;
	}
	//原则二
	if (result.up == 0)
		result.down = 1;
	//原则三
	else
	{
		int d = gcd(abs(result.up), abs(result.down));
		//这里一定要记得取绝对值
		result.down /= d;
		result.up /= d;
	}
	return result;
}

fracción de salida

Tenga en cuenta los siguientes puntos:

  1. Antes de las puntuaciones de salida para ser simplificados;
  2. Si el denominador es 1, lo que indica que el marcador es un número entero, generalmente molécula salida directa;
  3. Si la molécula es un valor absoluto mayor que el denominador, es decir la fracción impropia, para ser de salida en forma de fracción mixta;
  4. No satisfacer la puntuación descrita anteriormente es una fracción propia, como puede ser la salida.
//分数的输出
void showFraction(Fraction r)
{
	//原则一:先进行化简
	r = reduction(r);
	//原则二:如果是整数
	if (r.down == 1)
		printf("%d", r.up);
	//原则三:如果是假分数
	if (abs(r.up) > abs(r.down))
	{
		int a = r.up / r.down;
		r.up = abs(r.up) % r.down;//注意这里的绝对值
		printf("%d %d/%d\n", a, r.up, r.down);
	}
}

Nota: Puesto que los puntos de partida y el proceso de multiplicación puede causar más que el numerador o el denominador representa el rango del tipo int, por lo que en general,Numerador y el denominador a utilizar un almacenamiento a largo tiempo.

Publicado 43 artículos originales · ganado elogios 4 · Vistas 1206

Supongo que te gusta

Origin blog.csdn.net/weixin_42176221/article/details/101924369
Recomendado
Clasificación