درخواست:برنامه بزرگتیرن مقسوم الیه مشترک(اقلیدوسی)

mhabat

Member
با سلام.یک تمرین هست که میگه:
با استفاده از الگوریتم اقلیدس دو عدد صحیح از کاربر بگیر و بزرگترین مقسوم الیه مشترک آنهارا نشان بده.
البته یه سری توضیح داده اما چیز زیادی دستگیرم نشد.فکر کنم میشه باید جایه زوج مرتب ها تغییر کنه:دی
خیلی ممنون
بــــدرود
 

the_king

مدیرکل انجمن
با سلام.یک تمرین هست که میگه:
با استفاده از الگوریتم اقلیدس دو عدد صحیح از کاربر بگیر و بزرگترین مقسوم الیه مشترک آنهارا نشان بده.
البته یه سری توضیح داده اما چیز زیادی دستگیرم نشد.فکر کنم میشه باید جایه زوج مرتب ها تغییر کنه:دی
خیلی ممنون
بــــدرود
مقسوم الیه نه، مقسوم علیه.

1) اگر یکی از دو عدد 0 شد، عدد دیگر بزرگترین مقسوم علیه مشترک است و پایان.
2) اگر عدد اول از عدد دوم کوچکتر نیست، عدد دوم (کوچکتر) را از اولی کسر می کنیم.
3) اگر عدد دوم از عدد اول کوچکتر نیست، عدد اول (کوچکتر) را از دومی کسر می کنیم.
4) به مرحله 1 باز می گردیم.

کد:
    do
    {
        if (x == 0)
        {
            bmm = y;
            break;
        }
        if (y == 0)
        {
            bmm = x;
            break;
        }
        if (x > y)
            x -= y;
        else
            y -= x;
    } while (true);

یا

کد:
    while ((x > 0) && (y > 0))
    {
        if (x > y)
            x %= y;
        else
            y %= x;
    }
    if (x > y)
        bmm = x;
    else
        bmm = y;
 

mhabat

Member
سلام.ممنون از پاسخ خوبتون.
اون کد اولیه به trueگیر میده .
کجاشو اشتباه کردم؟
 

the_king

مدیرکل انجمن
سلام.ممنون از پاسخ خوبتون.
اون کد اولیه به trueگیر میده .
کجاشو اشتباه کردم؟

عبارت true یا TRUE در استاندارد زبان ++C / C نیست و بعضی کامپایلر ها نمی شناسندش، بجای true از 1 یا 1-
یا هر عددی بجز 0 استفاده کنید، 0 معادل false یا FALSE است.
 

جدیدترین ارسال ها

بالا