Вывести строку — словесное описание указанного возраста - C#
Формулировка задачи:
Дано целое число в диапазоне 20-69 , определяющее возраст (в годах). Вывести строку - словесное описание указанного возраста, обеспечив правильное согласование числа со словам "год" , например: 20-" двадцать лет", 32-"тридцать два года", 41- "сорок один год"
Решение задачи: «Вывести строку — словесное описание указанного возраста»
textual
Листинг программы
using System;
namespace ConsoleApplication161
{
class Program
{
static string[] decs = new[] {"двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят"};
static string[] sings = new[] { "", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять" };
static string[] years = new[] { "год", "года", "лет" };
static void Main(string[] args)
{
while (true)
{
Console.Write("Enter age: ");
var s = int.Parse(Console.ReadLine());
Console.WriteLine(AgeToString(s));
Console.WriteLine();
}
}
private static string AgeToString(int age)
{
var res = NumberToString(age);
switch(age % 10 )
{
case 1: return res + " " + years[0];
case 2:
case 3:
case 4: return res + " " + years[1];
default: return res + " " + years[2];
}
}
private static string NumberToString(int age)
{
var iDec = age/10 - 2;
var iSing = age%10;
return (decs[iDec] + " " + sings[iSing]).Trim();
}
}
}