Lakshay Chhabra Ответов: 5

Нужна помощь в написании программы, которая вычисляет сумму целых чисел в заданном диапазоне и также делится на заданное целое число?


Я должен написать программу, которая вычисляет сумму всех целых чисел в заданном диапазоне и также равномерно делится на заданное целое число. Пользователь предоставляет начало, конец и целое число делителя.

Для этого я создал два класса - класс программы, который принимает входные данные от пользователя, и класс суммирования, который выполняет все вычисления.

Я не могу понять, как написать код для метода в классе суммирования! любая помощь будет оценена по достоинству!

Спасибо! :)

Редактировать 1=

Спасибо за помощь, ребята! Это не домашнее задание. Это похоже на практический проект, который я делаю для класса, который я возьму в следующем семестре.

Я знаю, как настроить цикл для предопределенных значений, но я не могу понять, как работать с циклом для приемлемых для пользователя значений.

Вот что у меня есть на данный момент:

Класс программы:
Summation

sum = new Summation();

Console.WriteLine("Please enter the lower limit of the integer range.");
sum.LowerLimit = Convert.ToInt16(Console.ReadLine());

Console.WriteLine("Please enter the upper limit of the integer range.");
sum.UpperLimit = Convert.ToInt16(Console.ReadLine());

Console.WriteLine("Please enter the divisor(the number that is to divide evenly into the values in this range).");
sum.Divisor = Convert.ToInt16(Console.ReadLine());

sum.Summation();

Console.WriteLine("The range of numbers that divide into your chose divisor is:{0}.", sum.Sum);


Класс суммирования:

class

Summation
{
public int lowerLimit, upperLimit, divisor, sum;
public int LowerLimit
{
get { return lowerLimit; }
set { lowerLimit = value; }
}

public int UpperLimit
{
get { return upperLimit; }
set { upperLimit = value; }
}

public int Divisor
{
get { return divisor; }
set { divisor = value; }
}
public int Sum
{
get { return sum; }
set { sum = value; }
}

private float restart;

public float Restart
{
get { return restart; }
set { restart = value; }
}

int Sum = 0;        
        for (int i = LowerLimit; i <= UpperLimit; i++)
        {
            Sum = Sum + i;
        }


Правка 2 :

Я попытался вставить этот код (прилагается ниже), но он не работает. :/ Я получаю несколько ошибок. Я просто не могу понять этот кусок кода. Перепробовал все, что предлагал Грифф. Что-нибудь еще, что может мне помочь? Я всегда буду благодарен за любую помощь!
  int Sum = 0;        
    
    for (int i = lowerLimit; i <= upperLimit; i++)
{
    if(i % divisor == 0)
    Sum = Sum + i;
}
    return Sum;

<pre>

Richard C Bishop

Вам нужно будет предоставить код, который у вас есть, чтобы кто-то вам помог.

lewax00

Так это C# или Objective-C? Это два совершенно разных языка...пожалуйста, исправьте свои теги, если вы действительно не имеете в виду и то, и другое.

5 Ответов

Рейтинг:
2

codeninja-C#

int Sum = 0;        
for (int i = UserInput1; i <= UserInput2; i++)
{
if(i%divisor == 0)
    Sum = Sum + i;
}
return Sum;


--Я.


Рейтинг:
1

lewax00

Ну, похоже, что вы в основном там, но похоже, что вы пропустили Шаг 3 в ответе Гриффа. То, что вам нужно для этого, - это Оператор По Модулю[^Используя это, вы можете получить остаток от деления двух чисел, и если этот результат равен 0, то он может делиться равномерно (потому что, как я уверен, вы знаете, если он делится равномерно, то остатка нет).


Рейтинг:
1

JVRO

Это очень старый вопрос, но тем не менее мои два цента:

Enumerable.Range(lowerLimit, upperLimit).Where( n => n % divideableBy == 0).Sum();


Patrice T

Попробуйте ответить на актуальный вопрос: ОП не посещал нас уже 5 лет.

JVRO

Постарайтесь прочитать ответ более внимательно и
не покровительствуйте людям только потому, что вы находитесь в своей зоне комфорта.
Что я делаю и чего не делаю-это мое решение, а не твое.

Рейтинг:
0

OriginalGriff

Это сильно пахнет домашней работой, так что никакого кода!

Но это довольно просто:

1) Установите сумму, равную нулю.
2) Установите цикл, начиная с низкого значения пользователя
3) Если значение цикла по модулю делителя равно нулю, добавьте значение цикла к общему числу
4) Увеличьте значение цикла. Если он меньше или равен высокому значению пользователя, вернитесь к 3
5) Итого-это ответ.


Рейтинг:
0

DinoRondelly

int Sum = 0;
for (int i = UserInput1; i <= UserInput2; i++)
{
    Sum = Sum + i;
}
//return the sum divided by the divisor
return Sum / divisor;


lewax00

Это не то, что они искали...попробуйте еще раз прочитать их вопрос. Кроме того, ваше решение добавляет дополнительный UserInput1 к сумме (первая итерация добавит эту сумму, но она уже была установлена на эту сумму).