Пытаюсь переделать программу, не выходит НОД

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
vikkiend
Сообщения: 1
Зарегистрирован: 02 ноя 2017, 19:43

02 ноя 2017, 19:46

int main()
{
int num,n;
int nod(int a, int b)
{
if (b != 0) {
nod(b, a % b);
} else {
a;
}
}
printf("Number: ");
scanf("%d", &num);
while (num != 0)
{
int n = num%10;
while (num /= 10)
n = nod(n, num%10);
printf("Digits NOD: %d", n);
}

return 0;
}

Может кто-нибудь переделать данную программу, чтобы она так же высчитывала НОД цифр числа, но как-нибудь избавившись от использования функции , чтобы был только main()
Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

03 ноя 2017, 14:00

А что функция в maine делает? Да и тэги кода неплохо бы присобачить! :) C++Builder 6:

Код: Выделить всё

//---------------------------------------------------------------------------
#include <vcl>
#include <iostream>
#include <conio>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;

int NOD(int a, int b)
{
while((a != 0)&&(b!=0))
{
    if(a > b)
      a = a % b;
    else
      b = b % a;
}
if(a)
  return a;
else
  return b;
}

int main(int argc, char* argv[])
{
int n, f = 30, m = 18, h = 50, s = 130;

n = NOD(f, m);
cout << "NOD = " << n;

getch();
return 0;
}
//---------------------------------------------------------------------------
Пора бы и самому алгоритм Евклида в Интернете уметь находить! :D Алгоритм Евклида для нахождения НОД - полное название.
Ответить