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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 17:16   #1
CHOSEN1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 37
По умолчанию алгоритм

помогите составить алгоритм
задание: Определить ближайшее нечетное число меньше заданного числа N, которое делится на 4 с остатком 3.

код

Код:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n,m,i;
cout<<"Vvedute N"<<endl;

cin>>n;
for(i=1;i<n;i++)
{
if (i%4==3){m=i;}


}
cout<<m<<endl;
return 0;

}
CHOSEN1 вне форума Ответить с цитированием
Старый 12.11.2010, 17:52   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) а чем Вас Ваш алгоритм не устраивает? Добавьте проверку на нечётность (смотри ниже) и всё будет работать.

хотя, я бы, конечно, воспользовался более оптимальным решением!
1) ближайшее к N, значит Вам нужно крутить цикл от N уменьшая i
2) т.к. нужны только нечётные, то можно или - определить, чётное или нечётное N
если чётное, то взять начальное значение цикла i=N-1, при нечётном, разумеется N-1 и тогда шаг цикл можно брать 2 ( i-2 )
или, шаг оставить единицу, но тогда проверять i - нечётное ли
какой вариант Вам понятнее, такой и берите!

нечётность легко проверить - нечётное число: (i%2>0)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.11.2010, 18:04   #3
CHOSEN1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 37
По умолчанию

алгоритм имеется ввиду на листе)
начало--ввод N ...... --конец
CHOSEN1 вне форума Ответить с цитированием
Старый 12.11.2010, 18:11   #4
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию

CHOSEN1, это называется Блок-схема.
Ткни сюда.

Последний раз редактировалось Риндера; 12.11.2010 в 18:19.
Риндера вне форума Ответить с цитированием
Старый 12.11.2010, 18:23   #5
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

Serge_Bliznykov, зачем мудрить с алгоритмом уменьшающем шаг? При любом N придется проверять максимум 4 числа.( N%4==3 возможно только при не четном числе)
Код:
#include <iostream>
using namespace std;
void main(){
	int N;
	cout<<"Vvedute N"<<endl;
	cin>>N;
	for(int i=N-1;i>0;i--)
		if(i%4==3){
			cout<<i<<endl;
			break;
		}
}
Ёж птица гордая, пока не пнешь не полетит.
Ezhuk вне форума Ответить с цитированием
Старый 12.11.2010, 19:04   #6
CHOSEN1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 37
По умолчанию

Риндера
спасибо,посмотрим примет ли злобный препод блок схему написанную через diamFC

Ezhuk
работает только так у меня(борландс)
Код:
#include <iostream>
void main(){
	int N;
	cout<<"Vvedute N"<<endl;
	cin>>N;
	for(int i=N-1;i>0;i--)
		if(i%4==3){
			cout<<i<<endl;
					}
спасибо,так даже лучше.
CHOSEN1 вне форума Ответить с цитированием
Старый 12.11.2010, 19:38   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

CHOSEN1
ну, вообще-то, я имел в виду, как только найдёте подходящее число, то цикл прерывать... (Тем более, в примере, который Вам дал Ezhuk этот код есть!)


Ezhuk, угу. Вы правы!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.11.2010, 19:45   #8
CHOSEN1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 37
По умолчанию

отвечаю от этих примеров уже бошка болит.все смешалось) xD
CHOSEN1 вне форума Ответить с цитированием
Старый 12.11.2010, 19:59   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
отвечаю от этих примеров уже бошка болит.все смешалось)
понимаю. Так вот, если break забыть - то программа будет работать неверное - вместо одного числа будет выведены все числа, дающие при деление на 4 в остатке 3, от нужного числа и вплоть до 3-ки...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.11.2010, 20:24   #10
CHOSEN1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 37
По умолчанию

всем спасибо!)
CHOSEN1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм Blourid Свободное общение 16 11.08.2010 21:35
Волновой алгоритм (алгоритм Ли) MrRockchip Общие вопросы C/C++ 4 10.05.2010 13:26
алгоритм Apis Общие вопросы Delphi 1 26.04.2010 00:44
Алгоритм G@sh!sh Общие вопросы по Java, Java SE, Kotlin 4 21.06.2009 16:17
алгоритм lucky Паскаль, Turbo Pascal, PascalABC.NET 4 07.05.2009 12:56