Рац. числа - 2 точка
unknown
csharp
3 years ago
1.6 kB
11
Indexable
using System;
namespace ConsoleApp19
{
class Rational
{
int num;
int den;
public Rational(int n, int d)
{
this.num = n;
this.den = d;
normalize();
}
public string print()
{
return string.Format("{0}/{1}", this.num, this.den);
}
public void multi(Rational r)
{
this.num *= r.num;
this.den *= r.den;
normalize();
}
public void dev(Rational r)
{
this.num *= r.den;
this.den *= r.num;
normalize();
}
public void add(Rational r)
{
this.num = (this.num * r.den) + (r.num * this.den);
this.den *= r.den;
normalize();
}
public void minus(Rational r)
{
this.num = (this.num * r.den) - (r.num * this.den);
this.den *= r.den;
normalize();
}
void normalize()
{
int a = Math.Abs(this.num);
int b = Math.Abs(this.den);
while (a != b)
{
if (a > b) a -= b;
else b -= a;
}
this.num /= a;
this.den /= a;
}
}
class Program
{
static void Main(string[] args)
{
Rational a = new Rational(8, 20);
Rational b = new Rational(4, 5);
Console.Write(a.print() + " x " + b.print() + " = ");
a.dev(b);
}
}
}
Editor is loading...