Перевод введенного числа из десятичной системы счисления в СОК - C#
Формулировка задачи:
Подскажите пожалуйста код перевода введенного числа из десятичной системы счисления в СОК
Решение задачи: «Перевод введенного числа из десятичной системы счисления в СОК»
textual
Листинг программы
using System;
namespace lab
{
class Program
{
static void Main(string[] args)
{
//ввод числа
int x;
while (true)
{
Console.Write("Число->");
try
{
x = int.Parse(Console.ReadLine());
break;
}
catch { }
}
//x - переводимое число, дальнейшие числа образуют базис для СОК (2,3,5)
RNS rns = new RNS(x, 2, 3, 5);
Console.WriteLine(rns.ToString());
Console.Read();
}
public class RNS
{
int[] M;
int val;
int[] rns;
//индексатор для обращения через имя объекта
public int this[int i]
{
get
{
if (rns.Length > i && i >= 0)
return rns[i];
else
return -1;
}
}
/// <summary>
///
/// </summary>
/// <param name="x">Десятичное число</param>
/// <param name="m">Базис</param>
public RNS(int x, params int[] m)
{
M = m;
val = x;
rns = new int[m.Length];
for (int i = 0; i < M.Length; i++)
rns[i] = val % M[i];
}
public override string ToString()
{
string s = "(";
foreach (var i in rns)
s += i.ToString() + ';';
s = s.Remove(s.Length - 1) + ')';
return s;
}
}
}
}