مقلوب عدد

mfahiminia

New Member
با سلام خدمت دوستان عزیز
میشه لطفا برنامه مقلوب عدد در c++ را توضیح بدید.
با تشکر
 

the_king

مدیرکل انجمن
با سلام خدمت دوستان عزیز
میشه لطفا برنامه مقلوب عدد در c++ را توضیح بدید.
با تشکر

مقلوب یک عدد به بیان ساده برعکس آن عدد است و ارقام بجای از چپ به راست از راست به چپ نوشته می شوند،
مثلا مقلوب عدد 12345 برابر با 54321 است.

برای محاسبه کردن مقلوب یک عدد، ارقام را یکی یکی از سمت راست جدا کرده و سپس در متغیر دیگری
می چینیم. هنگامی که آخرین رقم عدد نیز جدا گردید عدد مقلوب محاسبه شده است. برای جدا کردن
یک رقم از سمت راست از عملگر باقیمانده تقسیم بر 10 استفاده می کنیم، مثلا در عدد 12345 باقیمانده
تقسیم بر 10 برابر با 5 است که رقم سمت راست آن می باشد.

کد:
#include <conio.h>
#include <iostream.h>

int main()
{
    long int n, r;
    cout << "Please enter a number : ";
    cin >> n;
    r = 0;
    do
    {
        r = r * 10 + n % 10;
        n /= 10;
    } while (n > 0);
    cout << endl << "Reverse = " << r << endl;
    getch();
    return 0;
}

متغیر n عدد مورد نظر و r مقلوب آن خواهد بود. بجای نوع داده int از نوع داده long int استفاده شده تا تعداد رقم های
بیشتری را بتوان در آنها ذخیره کرد.
کد:
    long int n, r;

نمایش پیغام و دریافت مقدار عدد n که قرار است مقلوب اش را محاسبه کنیم :
کد:
    cout << "Please enter a number : ";
    cin >> n;

پیش از شروع حلقه، مقدار r را 0 می کنیم تا برای قرار دادن رقم ها خالی باشد.
کد:
    r = 0;

ارقام را یکی یکی از سمت راست متغیر n خارج کرده و در r قرار می دهیم. این عمل تا زمانی انجام می شود
که دیگر در n رقمی باقی نماند، یعنی n برابر 0 گردد. به همین دلیل شرط ادامه اجرای حلقه n > 0 است.
دقت کنید که حتی اگر n از همان ابتدا 0 باشد، یک حلقه do while به هر حال یکبار اجرا می شود.
کد:
    do
    {
.
.
.
    } while (n > 0);

با عملگر باقیمانده تقسیم بر 10 (عملگر %) یک رقم از سمت راست n را بدست می آوریم.
پیش از اضافه کردن آن به r بایستی برای این رقم جا باز کنیم، پس r را در 10 ضرب کرده تا همه رقم ها
یک رقم به سمت چپ منتقل شده و رقم یکان 0 شود :
کد:
        r = r * 10 + n % 10;

می بایستی آن رقم سمت راست را از n حذف کنیم پس عدد را بر 10 تقسیم صحیح (بدون اعشار) می کنیم :
کد:
        n /= 10;
کد بالا را می توان به شکل زیر هم نوشت :
کد:
        n = n / 10;

نمایش مقدار عدد مقلوب r و انتظار برای فشار دادن یک کلید از سوی کاربر :
کد:
    cout << endl << "Reverse = " << r << endl;
    getch();
 

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

بالا