Использование params - C#

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

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

Добрый день, у меня есть программа, считающая НОК (наименьшее общее кратное) но только для двух переменных, необходимо усовершенствовать её чтобы она считала для неопределённого количества элементов, но проблема в том, что я не понял как его использовать, так как не имел дела с ним ранее. Вот код имеющейся программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace LR8._2
{
    class Program
    {
        public static int NOK(int m, int n)
        {
            int i;
            for (i = 0; i < (n * m + 1); i++)
            {
                if (i % m == 0 && i % n == 0)
                {
                    int nok = i;
                    if (i != 0)
                    {
                        break;
                    }
                }
            }
            return i;
        }
 
        static void Main(string[] args)
        {
            Console.WriteLine("Calculate NOK");
            Console.Write("- a:");
            int m = Convert.ToInt32(Console.ReadLine());
            Console.Write("- b:");
            int n = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("--— NOK = {0} —--", NOK(m, n));
            Console.ReadKey();
        }
    }
}
Сверху я написал оригинал задачи, которую нужно изменить, ниже то, что у меня получилось:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace LR8._2
{
    class Program
    {
        public static int NOK(params int[] values)
        {
            int i;
            for (i = 0; i < values.Length; i++)
            {
                Console.WriteLine("Calculate NOK");

                if (i % values[i] == 0)
                {
                    Console.Write("- a:");
                    values[i] = int.Parse(Console.ReadLine());
                    int nok = i;
                    if (i != 0)
                    {
                        break;
                    }
                }
            }
            return i;
        }
 
        static void Main(string[] args)
        {    
            params int[] values;                 
            Console.Write("- b:");
            int n = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("--— NOK = {0} —--", NOK());
            Console.ReadKey();
        }
    }
}

Решение задачи: «Использование params»

textual
Листинг программы
        static void Main(string[] args)
        {
            Console.WriteLine("Введите несколько натуральных чисел (в одну строку)");
            var values = Console.ReadLine()
                .Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                .Select(int.Parse)
                .ToArray();
            Console.WriteLine("--— NOK = {0} —--", NOK(values));
            Console.ReadKey();
        }

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


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

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

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