Проверить что цифры трехзначного числа являются членами геометрической прогрессии - C#
Формулировка задачи:
Составить программу, печатающую значение true, если указанное высказывание является истинным, и false в противном случае:
Цифры данного трехзначного числа N являются членами геометрической прогрессии;
Решение задачи: «Проверить что цифры трехзначного числа являются членами геометрической прогрессии»
textual
Листинг программы
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите число");
int n = int.Parse(Console.ReadLine());
List<int> nums = new List<int>();
while (n > 0)
{
nums.Add(n%10);
n /= 10;
}
nums.Sort();
bool result = IsGeometricProgression(nums);
Console.WriteLine("Является геометрической прогрессией: {0}", result);
Console.ReadKey();
}
private static bool IsGeometricProgression(List<int> nums)
{
double q = (double)nums[1]/nums[0];
for (int i = 2; i < nums.Count; i++)
{
if (Math.Abs((double)nums[i]/nums[i - 1] - q) > double.Epsilon)
return false;
}
return true;
}
}
}