• Помогите пожалуйста.Даны две цифры в десятичной системе счисления. Напишите
    программу, которая выводит название на русском языке цифры
    модуля разности этих цифр

Ответы 1

  • Так как целевой язык программирования не указан, написал на C#.

    В главном методе есть две переменные A и B, над которыми производнятся вычисления, а также метод IntToNaturalString(), преобразующий число в его строковую запись на русском языке.

    Результат работы на рисутке 1.

    Код:

    using System;

    using System.Collections;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    namespace FindPairs

    {

       class Program

       {

           static void Main(string[] args)

           {

               //*Введи свои значения здесь!*//

               int A = 46524;

               int B = 7353;

               int res = Math.Abs(A - B);

               Console.WriteLine("Исходная запись результата |{0}-{1}| = {2},", A, B, res);

               Console.WriteLine("что на русском языке звучит как \"{0}\".", IntToNaturalString(res));

           }

           static string IntToNaturalString(int number, string sep = " ")

           {

               return IntToNaturalString(number.ToString());

           }

           static string IntToNaturalString(string number, string sep = " ")

           {

               string result = "";

               if (number.Length > 3)

               {

                   string[] numbersClassNames = { "", "тысяч", "миллионов", "биллионов", "триллионов", "квадрилионов", "квинтиллионов" };

                   int K = number.Length / 3, D = number.Length % 3;

                   if (D > 0)

                       result += (IntToNaturalString(number.Substring(0, D)) + " " + numbersClassNames[K] + sep);

                   for (int i = 0; i < K; i++)

                   {

                       result += (IntToNaturalString(number.Substring(D+3*i, 3)) + " " + numbersClassNames[K - 1 - i] + sep);

                   }

               }

               else

               {

                   string[] hangred = { "", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот" };

                   string[] decades = { "", "десять", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто" };

                   string[] ones    = { "", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять" };

                   string[] chst    = { "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестрадцать", "восемнадцать", "девятнадцать" };

                   number = RightFillZeros(number);

                   int H = int.Parse(number[0].ToString());

                   int D = int.Parse(number[1].ToString());

                   int O = int.Parse(number[2].ToString());

                   result = hangred[H] + " ";

                   if (D == 1 && O != 0)

                       result += chst[O];

                   else

                       result += decades[D] + " " + ones[O];

               }

               return result;

           }

           static string RightFillZeros(string number, int N = 3)

           {

               if (number.Length < N)

               {

                   number  = new string('0', N - number.Length) + number;

               }

               return number;

           }

       }

    }

    answer img
    • Автор:

      anna61
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years