[] Estrutura de dados e de estudo algoritmo notas - "Notas algoritmo" pontuações -17 [disse] simplificação e de saída

representação fracionária

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

simplificando fracções

Pontuações simplificação deve atender a três princípios:

  1. Quando o denominador é negativo, enquanto que o numerador e denominador negada;
  2. Quando uma pontuação de zero (quando a molécula é zero), o denominador deve ser 1;
  3. O numerador eo denominador não contam (exceto com o máximo divisor comum) da Convenção, além 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;
}

saída fração

Observe os seguintes pontos:

  1. Antes de pontuação de saída para ser simplificada;
  2. Se o denominador é um, o que indica que o marcador é um número inteiro, geralmente molécula saída directa;
  3. Se a molécula é um valor absoluto maior que o denominador, que é a fracção impróprio, para ser produzido na forma de uma fracção mista;
  4. Não satisfazem a pontuação acima descrito é uma fração adequada, pois ele pode ser a saída.
//分数的输出
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: Uma vez que os pontos de partida e o processo de multiplicação pode causar mais do que o numerador ou denominador representa a gama do tipo int, portanto, em geral,Numerador e denominador para ser utilizado um armazenamento de longo tempo.

Publicado 43 artigos originais · ganhou elogios 4 · Vistas 1206

Acho que você gosta

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