Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> НОД 
:(
    Опции темы
plushevyi
Дата 27.12.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Объясните пожалуйста, каким образом можно написать программу, которая определит и выведит на экран НОД(a; b), без использования в коде функции...
Если не трудно, то выложите код... просто мучаюсь с данным заданием уже 3 дня, с использованием функции, программа работает... smile 
PM MAIL   Вверх
GrayCardinal
Дата 27.12.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: нет
Всего: 58



plushevyi,
НОД расшифруйте плиз...

Это сообщение отредактировал(а) GrayCardinal - 27.12.2007, 15:39


--------------------
PM MAIL WWW   Вверх
plushevyi
Дата 27.12.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



НОД-наибольший общий делитель, например, есть числа 12 и 6 - их НОД равен 6, или 33 и 6 - их НОД равен 3.

Как я понимаю, берутся два числа: a и b, далее вычисляем:
a=33
b=6

if (a>b) a=33-6=27;
if (a>b) a=27-6=21;
if (a>b) a=21-6=15;
if (a>b) a=15-6=9;
if (a>b) a=9-6=3; на этом этапе a<b, поэтому b-a: 9-6=3 => НОД=3

Но как написать код без использования функции я не понимаю, объясните пожалуйста...

Это сообщение отредактировал(а) plushevyi - 27.12.2007, 16:32
PM MAIL   Вверх
archimed7592
Дата 27.12.2007, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Цитата(plushevyi @  27.12.2007,  15:23 Найти цитируемый пост)
без использования в коде функции...

Без использования какой ф-ции?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
plushevyi
Дата 27.12.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Цитата(archimed7592 @ 27.12.2007,  16:28)
Цитата(plushevyi @  27.12.2007,  15:23 Найти цитируемый пост)
без использования в коде функции...

Без использования какой ф-ции?

Вот код с функцией:


Код

#include <iostream>
//#include <cmath>
using namespace std;

int gfc(int a,int b);

int main()
{
int a=0, b=0;
while(1){
    
cout <<"Введите число";
cin >>a;
if(a==0) break;

cout << "Введите второе число";
cin >>b;
cout <<"НОД = "<< gfc(a,b)<<endl;
}
return 0;
}
int gfc(int a, int b){
    if (a%b==0) return b;
    else return gfc(b, a%b);}



Это сообщение отредактировал(а) plushevyi - 27.12.2007, 16:35
PM MAIL   Вверх
archimed7592
Дата 27.12.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Цитата(plushevyi @  27.12.2007,  15:23 Найти цитируемый пост)
Если не трудно, то выложите код

Здесь помогают разобраться. Если не хочешь разбираться, то тебе здесь вряд ли помогут.

Цитата(plushevyi @  27.12.2007,  15:23 Найти цитируемый пост)
просто мучаюсь с данным заданием уже 3 дня

С чем мучаешься? Что пробовал делать? Что получалось в итоге? Этот код ты писал сам?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
susanin
Дата 18.1.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: 2
Всего: 7



plushevyi , в  своем примере
Цитата(plushevyi @  27.12.2007,  16:34 Найти цитируемый пост)
Вот код с функцией:

вы приводите код с рекурсивной функцией нахождения НОД. если словами

Цитата(plushevyi @  27.12.2007,  15:23 Найти цитируемый пост)
без использования в коде функции...

вы хотели сказать, что требуется найти НОД без использования именно рекурсивной функции, то предлагаю следующий код
Код

int nod(int a, int b)
{
    if(a<b)
    {
        for(int i=a;i>0;i--)
            if(a%i==0)
            {
                if(b%i==0)
                    return i;
            }
    }
    else
        for(int i=b;i>0;i--)
            if(b%i==0)
            {
                if(a%i==0)
                    return i;
            } 
}

эта функция нерекурсивно находит НОД...если вам необходимо чтобы вообще не было дополнительных функций, то прост овстройте этот код в main(), если же вам надо что то другое, то прошу уточнить задание...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1167 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.