Проверка цифр числа на геометрическую прогрессию с помощью C#
Задача
Требуется программа на языке C#, которая будет выводить на консоль true, если нижеследующее высказывание истинно или false - если, соответственно, оно ложно. Высказывание: есть трехзначное число, его цифры - члены геометрической прогрессии.Текст программы ниже со всеми необходимыми комментариями. Предварительно можно добавить только что программа состоит из трех частей: два метода (раскладывающий число на цифры) и возвращающий true или false, а также основного метода - которые получает исходное число и выводит результат на консоль.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GeometricProgression { class Program { //метод преобразования числа в массив цифр static byte[] GetFigures(int val) { List<byte> res = new List<byte>(); while (val != 0) { res.Add((byte)(val % 10)); val /= 10; } res.Reverse(); return res.ToArray(); } //метод определения наличия прогрессии static Boolean isProg(byte[] figures) { //расставляем элементы массива (цифры в числе) по возрастанию, так как не указано, //что они идут по возрастающей (хотя интутивно кажется так). Например, может быть и 248 и 482. //Для этого делаем элементы с большей цифрой ближе к концу. И так два раза - по размеру массива. byte per = 0; for (int j = 0; j < 2; j++) { for (int i = 0; i < 2; i++) { if (figures[i] > figures[i + 1]) { per = figures[i + 1]; figures[i + 1] = figures[i]; figures[i] = per; } } } //делим друг на друга double x = figures[1] / figures[0]; double y = figures[2] / figures[1]; //вычисляем остаток double x1 = figures[1] % figures[0]; double y1 = figures[2] % figures[1]; //сравниваем результаты деления и остатки должны быть равны нулю if ((x==y)&&(x1==0)&&(y1==0)) return true; else return false; } static void Main(string[] args) { //исходное трехзначное число int isCh = 842; //методы обрабатывают его byte[] figures = GetFigures(isCh); Boolean rez = isProg(figures); //выводим результат на консоль и ждем завершения Console.WriteLine(rez); Console.ReadKey(); } } }Решение задач на C# - up777up@yandex.ru - быстро и недорого. Скайп up777up2
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.