Другие языки программирования и технологии
Задача C#. Найти минимальную и максимальную
найти минимальную и максимальную цифры среди четных и нечетных цифр, составляющих некоторое число X.
using System;
namespace Example {
class DiditsNumber {
private string number;
private char[] oddDigits = { '1', '3', '5', '7', '9' };
private char[] evenDigits = { '0', '2', '4', '6', '8' };
public DiditsNumber(string number) { this.number = number; }
public DiditsNumber(ulong number) { this.number = number.ToString(); }
private bool IsDigit(char digit) { return digit >= '0' && digit <= '9' ? true : false; }
private bool IsNumber(string number) {
int length = number.Length;
if (length == 0) return false;
for (int i = 0; i < length; ++i) if (!IsDigit(number[i])) return false;
return true;
}
private string MinOddDigit(string number) {
for (int i = 0; i < 5; ++i) for (int j = 0; j < number.Length; ++j) if (oddDigits[i] == number[j]) return number[j].ToString();
return "Число не содержит нечётных цифр! ";
}
private string MaxOddDigit(string number) {
for (int i = 4; i >= 0; --i) for (int j = 0; j < number.Length; ++j) if (oddDigits[i] == number[j]) return number[j].ToString();
return "Число не содержит нечётных цифр! ";
}
private string MinEvenDigit(string number) {
for (int i = 0; i < 5; ++i) for (int j = 0; j < number.Length; ++j) if (evenDigits[i] == number[j]) return number[j].ToString();
return "Число не содержит чётных цифр! ";
}
private string MaxEvenDigit(string number) {
for (int i = 4; i >= 0; --i) for (int j = 0; j < number.Length; ++j) if (evenDigits[i] == number[j]) return number[j].ToString();
return "Число не содержит чётных цифр! ";
}
public string PrintResult() {
string result = number;
if (IsNumber(number)) {
string tmp = MinOddDigit(number);
if (tmp.Length == 1) result += ": Минимальное нечётное = " + tmp + ", максимальное нечётное = " + MaxOddDigit(number) + "\n";
else result += ": " + tmp + "\n";
tmp = MinEvenDigit(number);
if (tmp.Length == 1) result += number + ": Минимальное чётное = " + tmp + ", максимальное чётное = " + MaxEvenDigit(number) + "\n";
else result += ": " + tmp + "\n";
}
else result += ": Входные данные не являются числом! \n";
return result;
}
}
class Program {
static void Main() {
DiditsNumber dnn = new DiditsNumber(635486576UL);
Console.WriteLine(dnn.PrintResult());
DiditsNumber dns = new DiditsNumber("64868686864686862486462684648");
Console.WriteLine(dns.PrintResult());
DiditsNumber dne = new DiditsNumber("фигня");
Console.WriteLine(dne.PrintResult());
Console.ReadKey();
}
}
}
namespace Example {
class DiditsNumber {
private string number;
private char[] oddDigits = { '1', '3', '5', '7', '9' };
private char[] evenDigits = { '0', '2', '4', '6', '8' };
public DiditsNumber(string number) { this.number = number; }
public DiditsNumber(ulong number) { this.number = number.ToString(); }
private bool IsDigit(char digit) { return digit >= '0' && digit <= '9' ? true : false; }
private bool IsNumber(string number) {
int length = number.Length;
if (length == 0) return false;
for (int i = 0; i < length; ++i) if (!IsDigit(number[i])) return false;
return true;
}
private string MinOddDigit(string number) {
for (int i = 0; i < 5; ++i) for (int j = 0; j < number.Length; ++j) if (oddDigits[i] == number[j]) return number[j].ToString();
return "Число не содержит нечётных цифр! ";
}
private string MaxOddDigit(string number) {
for (int i = 4; i >= 0; --i) for (int j = 0; j < number.Length; ++j) if (oddDigits[i] == number[j]) return number[j].ToString();
return "Число не содержит нечётных цифр! ";
}
private string MinEvenDigit(string number) {
for (int i = 0; i < 5; ++i) for (int j = 0; j < number.Length; ++j) if (evenDigits[i] == number[j]) return number[j].ToString();
return "Число не содержит чётных цифр! ";
}
private string MaxEvenDigit(string number) {
for (int i = 4; i >= 0; --i) for (int j = 0; j < number.Length; ++j) if (evenDigits[i] == number[j]) return number[j].ToString();
return "Число не содержит чётных цифр! ";
}
public string PrintResult() {
string result = number;
if (IsNumber(number)) {
string tmp = MinOddDigit(number);
if (tmp.Length == 1) result += ": Минимальное нечётное = " + tmp + ", максимальное нечётное = " + MaxOddDigit(number) + "\n";
else result += ": " + tmp + "\n";
tmp = MinEvenDigit(number);
if (tmp.Length == 1) result += number + ": Минимальное чётное = " + tmp + ", максимальное чётное = " + MaxEvenDigit(number) + "\n";
else result += ": " + tmp + "\n";
}
else result += ": Входные данные не являются числом! \n";
return result;
}
}
class Program {
static void Main() {
DiditsNumber dnn = new DiditsNumber(635486576UL);
Console.WriteLine(dnn.PrintResult());
DiditsNumber dns = new DiditsNumber("64868686864686862486462684648");
Console.WriteLine(dns.PrintResult());
DiditsNumber dne = new DiditsNumber("фигня");
Console.WriteLine(dne.PrintResult());
Console.ReadKey();
}
}
}
Разбиваем на цифры, проверяем на четность. Ищем минимум-максимум среди соответсвующих. Что не получается-то?
Похожие вопросы
- Помогите решить задачу C++. Найти номер строки, для которой среднее арифметическое значение ее элементов максимальна
- помогите решить задачку по информатике на паскале. найти минимальный и максимальный элемент двухмерного массива
- кто может сделать прогу в C++ которая поменяет местами в каждом столбце минимальный и максимальные элементы в матрице??
- Формула расчета минимальной и максимальной цены
- помогите пожалуйста решить задачу в С++,завтра экзамен. дана матрица а [4][5],надо найти строку с максимальным средним ари
- напишите программу которая находит минимальный и максимальный элементы матрицы и их индексы
- задан массив(с++) n*m нужно найти минимальный элемент в каждой строчке, а затем среди них максимальный
- Помоги те решить эту задачу C++
- Помогите решить задачу c#
- задача в pascale. дан массив. Найти минимальный элемент и отсортировать все элементы стоящие после него.