Определить, является ли введенная последовательность геометрической прогрессией - C#

Узнай цену своей работы

Формулировка задачи:

С клавиатуры вводится последовательность целых чисел, признаком конца ввода является 0, определить является введенная последовательность геометрической прогрессией. Подскажите пожалуйста, работает без массива, но при вводе двух чисел последовательности проверка не проходит так как выходит из цикла, даже если проверку сделать, то как ни крути b присваивается c(Это необходимо чтобы продолжить проверку чисел последовательности если их больше трех).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _test
{
    class Program
    {
        static void Main(string[] args)
        {
            
            double a, b, c = 1, d;
            bool progress = true;
 
            System.Console.Write("Введите последовательность чисел через строку:\n");
            a = Convert.ToDouble(Console.ReadLine());
            b = Convert.ToDouble(Console.ReadLine());
            
            d = a / b;
          System.Console.WriteLine( d); 
           
            while (c != 0)
            {
                c = Convert.ToDouble(Console.ReadLine());
 
                if (c != 0)
                {
                    if (b / c != d)
                        progress = true;
                    else
                        progress = false;
                }
             b=c;
            }             
 
            if (!progress)
                System.Console.WriteLine("Последовательность является геометрической прогрессией");
            else
               System.Console.WriteLine("Последовательность НЕ является геометрической прогрессией");
            while (Console.ReadKey().Key != ConsoleKey.Escape) ;
 
        }
    }
}

Решение задачи: «Определить, является ли введенная последовательность геометрической прогрессией»

textual
Листинг программы
static void Main(string[] args)
{
    double a, b, c, d;
    bool progress = true;
    System.Console.Write("Введите последовательность чисел через строку:\n");
    a = Convert.ToDouble(Console.ReadLine());
    b = Convert.ToDouble(Console.ReadLine());
    d = a / b;
    c = Convert.ToDouble(Console.ReadLine());
    while (c != 0)
    {
        progress &= (b / c == d);
        b = c;
        c = Convert.ToDouble(Console.ReadLine());
    }
    if (progress)
        System.Console.WriteLine("Последовательность является геометрической прогрессией c шагом {0}", 1/d);
    else
        System.Console.WriteLine("Последовательность НЕ является геометрической прогрессией");
    while (Console.ReadKey().Key != ConsoleKey.Escape) ;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.5 из 5
Похожие ответы