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()
Пытаюсь переделать программу, не выходит НОД
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
А что функция в 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;
}
//---------------------------------------------------------------------------
