Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2011, 22:55   #1
Владимир Нечипорюк
Новичок
Джуниор
 
Регистрация: 23.12.2011
Сообщений: 1
Восклицание решение цикла

задача: Найти сумму первых n натуральных чисел, которые делятся на 5

код

Код:
#include<stdio.h>
#include<conio.h>
void main()
{
  int n,i,summa;

  printf("Summa natural chisel, delishixsya na 5.\n\n");
  printf("Vvedite kolichestvo chlenov: ");
  scanf("%i",&n);

  for (i = 1; i <= n; i++)
  {
	summa=((5+5*n)*n)/2;
  }
  printf("Poluchim summa=%i",summa);
  printf("\n\n\nPress any key to continue");
  getch();
}
надо расписать все 5 чисел

Последний раз редактировалось ACE Valery; 26.12.2011 в 17:22.
Владимир Нечипорюк вне форума Ответить с цитированием
Старый 24.12.2011, 11:58   #2
Maksimall89
Пользователь
 
Аватар для Maksimall89
 
Регистрация: 10.11.2010
Сообщений: 59
По умолчанию

У вас очень странный алгоритм. Надо лишь проверять остаток от деления числа на 5, если он равен 0 то прибавляем это число к сумме, если нет, то переходим к следующему числу в данном диапазоне чисел.
Код:
#include "stdafx.h"
#include <iostream> // поток
using namespace std;

int main()
{
	setlocale(LC_ALL, "russian_russia.1251"); // русский текст
	int sum=0;
	int number;
	//запрос на количество чисел
	cout<<"Введити количество натуральных чисел = ";
	cin>>number;
	for (int i=1;i<=number;i++)
	{
		if (i % 5 == 0)
		{
			sum +=i;
		}
	}
	cout<<"Сумма чисел = "<<sum<<endl;

	cin.get();
	return 0;
}
Maksimall89 вне форума Ответить с цитированием
Старый 24.12.2011, 12:04   #3
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

А можно просто учесть, что числа, делящиеся на пять, повторяются через 5
Код:
int summ = 0;
for (int i = 1; i <= n; ++i)
    summ += 5 * i;
А лучше всего посчитать по формуле, что ваша программа и делает, только непонятно, зачем она делает это n раз.
Код:
int summ = (5+5*n)*n/2;
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 24.12.2011, 19:59   #4
slove
Новичок
Джуниор
 
Регистрация: 24.12.2011
Сообщений: 1
По умолчанию

Цитата:
Сообщение от Maksimall89 Посмотреть сообщение
У вас очень странный алгоритм. Надо лишь проверять остаток от деления числа на 5, если он равен 0 то прибавляем это число к сумме, если нет, то переходим к следующему числу в данном диапазоне чисел.
Код:
#include "stdafx.h"
#include <iostream> // поток
using namespace std;

int main()
{
	setlocale(LC_ALL, "russian_russia.1251"); // русский текст
	int sum=0;
	int number;
	//запрос на количество чисел
	cout<<"Введити количество натуральных чисел = ";
	cin>>number;
	for (int i=1;i<=number;i++)
	{
		if (i % 5 == 0)
		{
			sum +=i;
		}
	}
	cout<<"Сумма чисел = "<<sum<<endl;

	cin.get();
	return 0;
}
Думаю так будет лучше
Код:
for ( int i=1; i<=number+1; i++)
slove вне форума Ответить с цитированием
Старый 25.12.2011, 01:07   #5
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Владимир Нечипорюк Посмотреть сообщение
Найти сумму первых n натуральных чисел, которые делятся на 5
Если правила математики в последнее время не менялись, то все натуральные числа делятся на 5
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 25.12.2011, 14:18   #6
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Blade, имеется в виду без остатка. Надеюсь.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 25.12.2011, 14:56   #7
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Blade, имеется в виду без остатка. Надеюсь.
Блин, вы думаете я не догадался что имеется ввиду?
ТЗ нужно указывать максимально корректно
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 25.12.2011, 21:18   #8
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Blade, да не злитесь Вы так, троллю же)
И, кстати, в данном случае вроде как очевидно, что речь идет про целочисленное деление.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 26.12.2011, 00:39   #9
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Blade, да не злитесь Вы так
Так - это как? И вообще, с чего вы взяли, что я хоть как-то злюсь?

Цитата:
Сообщение от Granus Посмотреть сообщение
И, кстати, в данном случае вроде как очевидно, что речь идет про целочисленное деление.
Исходя из этого:
Цитата:
Сообщение от Владимир Нечипорюк Посмотреть сообщение
задача: Найти сумму первых n натуральных чисел, которые делятся на 5
Каким местом может быть очевидно, что речь идет про деление без остатка?
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 26.12.2011, 00:45   #10
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
И вообще, с чего вы взяли, что я хоть как-то злюсь?
Вы написали "Блин"

По вашему определению получается, что условие "которые делятся на 5" вообще лишнее, а это странно)
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
алгоритмы нахождения эйлерова цикла и гамильтонова цикла в графе. Necare Помощь студентам 0 15.11.2011 18:26
ператор цикла FOR. Напишите решение 21denis12 Паскаль, Turbo Pascal, PascalABC.NET 7 24.10.2011 20:23
Переход от цикла к циклу не выходя из цикла (без multithreading) Qousio Общие вопросы C/C++ 2 16.05.2009 09:27
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10