Дописать программу которая подсчитывает сумму натуральных чисел от 1 до n

Задача A. Четные числа
Выведите (через пробел) все четные числа от a до b (включительно).

  1. int a, b ;
  2. cin >> a >> b;
  3. for ( int i = a; i
  4. if (i % 2 == 0)
  5. cout

Задача B. Остаток
Вводятся 4 числа: a, b, c и d.
Выведите все числа на отрезке от a до b, дающие остаток c при делении на d.

  1. int a, b, c, d ;
  2. cin >> a >> b >> c >> d;
  3. for ( int i = a ; i
  4. if (i % d == c)
  5. cout

Задача C. Квадраты
Выведите все числа на отрезке от a до b, являющиеся полными квадратами.

  1. int a , b;
  2. cin >> a >> b ;
  3. int sqrt_a = ceil(sqrt(a + 0.0));
  4. int sqrt_b = sqrt(( double )b);
  5. for ( int i = sqrt_a ; i
  6. cout

В этом случае мы рационально движемся от sqrt(a) к sqrt(b), т.к. проверка меньших и больших значений смысла не имеет.
Нужно обратить внимание, что корень от а округляется в большую сторону ceil(sqrt(a + 0.0) перед отправкой в цикл: если а – и есть полный квадрат, то это число также должно быть выведено, однако, если а дает дробный корень, то его целая часть (при приведении к типу int) даст заведомо меньший квадрат, чем значение а. Поэтому мы заранее округляем sqrt(a) до следующего целого числа, дабы избежать выведение лишнего квадрата.

Найти натуральное число n найти сумму чисел от 1 до n

Варинат 2.
Этот вариант реализации менее рациональный, однако более прозрачный. Мы напрямую движемся от а до b c проверкой полноты квадрата каждого из текущих значений.

  1. int a,b;
  2. cin>>a>>b;
  3. for ( int i=a;i <=b;i++)
  4. int Sqrt = sqrt(( double )i);
  5. if ( Sqrt*Sqrt == i)
  6. cout
  7. >

* This source code was highlighted with Source Code Highlighter .

Задача H. Делители числа
Выведите все натуральные делители числа x в порядке возрастания (включая 1 и само число).

  1. int x;
  2. cin >> x;
  3. for ( int i = 1 ; i
  4. if ( x % i == 0 )
  5. cout

Задача I. Количество делителей
Подсчитайте количество натуральных делителей числа x (включая 1 и само число; x

  1. int x, k = 0;
  2. cin >> x;
  3. for ( int i = 1; i
  4. if (x % i == 0 )
  5. k++;
  6. cout

Задача J. Сумма ста
Вычислите сумму данных 100 натуральных чисел. Вводятся 100 чисел, сумму которых необходимо посчитать.

  1. int x;
  2. long long sum = 0;
  3. for ( int i = 1; i
  4. cin >> x;
  5. sum += x;
  6. >
  7. cout

Задача K. Сумма чисел
Вычислите сумму данных N натуральных чисел. Вводится число N, а затем N чисел, сумму которых необходимо вычислить.

  1. int n, x;
  2. long long sum = 0;
  3. cin >> n;
  4. for ( int i = 1; i
  5. cin >> x;
  6. sum += x;
  7. >
  8. cout
Читайте также:
Программа для стиральной машины LG на Айфон

Задача M. Нули

Как за 10 секунд найти сумму всех натуральных чисел от 1 до 100


Вводится число N, а затем N чисел. Подсчитайте, сколько среди данных N чисел нулей.

  1. int n , x , k = 0;
  2. cin >> n;
  3. for ( int i = 1; i
  4. cin >> x;
  5. if (x == 0)
  6. k++;
  7. >
  8. cout

Задача N. Подсчет чисел
Подсчитайте, сколько среди данных N чисел нулей, положительных чисел, отрицательных чисел. Вводится число N, а затем N чисел. Необходимо вывести сначала число нулей, затем число положительных и отрицательных чисел.

  1. int n, x;
  2. int zero = 0, pos = 0, neg = 0;
  3. cin >> n;
  4. for ( int i = 1; i
  5. cin >> x;
  6. if (x == 0) zero++;
  7. else if (x > 0) pos++;
  8. else neg++;
  9. >
  10. cout

При данной реализации мы каждый раз в цикле прогоняем последовательную проверку числа на знак. Сейчас это не доставляет никаких неудобств, т.к. мы имеем всего 3 критерия подсчета. Однако, если б требовалась более широкая проверка, например, относительно 10-ти различных случаев, то рациональнее было бы использовать сase–структуру. Что и сделано в варианте 2

Вариант 2.
Используем сase–структуру для определения знака, предварительно нормировав ненулевые значения в единицу (1/-1).

  1. int n, x;
  2. int zero = 0, pos = 0, neg = 0;
  3. cin >> n;
  4. for ( int i = 1; i
  5. cin >> x;
  6. if (x)
  7. x /= abs(x);
  8. switch (x)
  9. case 1: pos++; break ;
  10. case 0: zero++; break ;
  11. case -1: neg++; break ;
  12. >
  13. >
  14. cout

* This source code was highlighted with Source Code Highlighter .

Задача O. Ноль или не ноль
Проверьте, есть ли среди данных N чисел нули. Вводится число N, а затем N чисел. Выведите YES, если среди введенных чисел есть хотя бы один нуль, или NO в противном случае.

  1. int x, n;
  2. cin >> n;
  3. bool zeroExist = false ;
  4. for ( int i = 1; i
  5. cin >> x;
  6. if (x == 0)
  7. zeroExist = true ;
  8. break ;
  9. >
  10. >
  11. if (zeroExist)
  12. cout
  13. else
  14. cout

Вариант 2.
Ту же самую идею можно описать короче.

  1. int x, n;
  2. cin >> n;
  3. bool zeroExist = false ;
  4. for ( int i = 1; i
  5. cin >> x;
  6. zeroExist = zeroExist | (x == 0);
  7. if (zeroExist)
  8. break ;
  9. >
  10. cout <<(zeroExist ? «YES» : «NO» );
Читайте также:
Программа для обновления прошивки Samsung

Задача P. Уравнение по возрастанию
Вводятся 4 числа: a, b, c и d.
Найдите все целые решения уравнения ax 3 + bx 2 + cx + d = 0 на отрезке [0,1000] и выведите их в порядке возрастания.

  1. long long a , b , c , d ;
  2. cin >> a >> b >> c >> d;
  3. for ( int i = 0; i
  4. if ( a*i*i*i + b*i*i + c*i + d == 0)
  5. cout

Задача Q. Уравнение по убыванию
Вводятся 4 числа: a, b, c и d.
Найдите все целые решения уравнения ax 3 + bx 2 + cx + d = 0 на отрезке [0,1000] и выведите их в порядке убывания.

  1. long long a, b, c, d;
  2. cin >> a >> b >> c >> d;
  3. for ( int i = 1000; i >= 0; i—)
  4. if (a*i*i*i + b*i*i + c*i + d == 0)
  5. cout

Задача R. Количество решений
Вводятся 5 чисел: a, b, c, d и e.
Найдите все целые решения уравнения ( ax 3 + bx 2 + cx + d ) / ( x — e ) = 0 на отрезке [0,1000] и выведите их количество.

  1. long long a, b, c, d, e;
  2. cin >> a >> b >> c >> d >> e ;
  3. int k = 0;
  4. for ( int i = 0; i
  5. if (a*i*i*i + b*i*i + c*i + d == 0)
  6. if (i — e != 0)
  7. k++;
  8. cout

Задача S. ГНЧЭ-1
«ГНЧЭ-1» – сложное электронное устройство, выдающее каждую секунду очередное число последовательности 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5. Ввиду дороговизны электронных комплектующих вам поручено разработать эмулятор для этого устройства.
Дано количество секунд (от 1 до 1000000), которые работает генератор после включения. Вывести результат работы генератора

Вариант 1.
При таком варианте реализации мы печатаем столько раз текущее значение cur сколько оно само обозначает count , после чего обнуляем подсчет одинаковых выводов count и переходим на следующее текущее значение cur и т.д.

  1. int n;
  2. cin >> n;
  3. int cur = 1 , count = 0;
  4. for ( int i = 1; i
  5. cout
  6. count++;
  7. if (cur == count)
  8. cur++;
  9. count = 0;
  10. >
  11. >

Вариант 2.
В этом варианте решения идея та же. Однако контроль за количеством отработанных секунд и количеством напечатанных текущих значений возложены на два отдельных цикла.
Итак, здесь мы ведем подсчет напечатанных позиций pos , которых должно быть ровно столько же, сколько секунд работает машина. А внутренним циклом задаем печать текущего числа cur . Проверка условия if (pos == n) не даст задержаться во внутреннем цикле дольше положенных секунд.

  1. int n;
  2. cin >> n;
  3. int pos = 0, cur = 1;
  4. for ( ; pos < n ; )
  5. for ( int i = 0; i < cur; i++)
  6. printf( «%d » , cur);
  7. pos++;
  8. if (pos == n)
  9. break ;
  10. >
  11. cur++;
  12. >
Читайте также:
Bash не является внутренней или внешней командой исполняемой программой или пакетным файлом

Источник: cpptasksolver.blogspot.com

Напишите программу, которая подсчитает сумму натуральных чисел от 1 до n

Мандрыка, кроме формулы Гаусса, которую знать не обязательно, есть формула суммы арифметической прогрессии.

А еще есть язык PascalABC.NET, где эта задача пишется в одну строку за 30 секунд.
n = 900000000000000

Видите ли, можно написать, к примеру, программу пузырьковой сортировки, и она загнется на ста миллионах элементов. Не потому что плохая, просто не предназначена для такого объема.

Для каждого круга задач — свой алгоритм, своя реализация.

Вот для небольших n эта программа будет быстрее алгоритма Гаусса. Потому, что тут только сложение, а там умножение и деление, которое реализуется в процессоре намного дольше.

Добавить свой ответ Ответить на вопрос
Еще вопросы

Узнай значения b, при которых b+11 меньше, чем 17−b

1) (9)Короче, профессия грузчика как перспективная мною никогда не рассматривалась.

2) (12)Но алгебра, геометрия и физика по-прежнему были самыми тёмными для меня предметами.

3) (17)Во-первых, там преподавал мой любимый дядя.

4) (22)Слушал и смотрел выступления студенческого хора, концерты студентов эстрадного отделения, спектакли, поставленные и сыгранные студентами.
ПОМОГИТЕ СРОЧНО ПОЖАЛУЙСТА

Источник: znanija.site

Java сумма от 1 до n с выводом, показывающим работу

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

Напишите программу, которая читает положительное целое число n и печатает сумму всех целых чисел от 1 до n следующим образом: 1 + 2 +… + n = n (n + 1) / 2 Выходные данные не содержат пробелов. Пример ввода : 5 Соответствующий вывод: 1 + 2 + 3 + 4 + 5 = 15

import java.util.Scanner; public class Homework2 < public static void main(String[] args) < Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int sum = 0; for (int i = 0;i System.out.printf(«the sum of %d is %d%n», n, sum); > >

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

Источник: question-it.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru