ICT Private program

A Creative ICT Private Program for H.Sc Student's

যেভাবে কোন ডিজিটকে রিভার্স করতে হবে

গাণিতিক লজিক

যদি এমন হয় আমি আপনাকে ১২৩ একটা সংখ্যা দিলাম একটা সি প্রোগ্রাম তাকে ৩২১ এ পরিণত করবে । অর্থাৎ প্রদত্ত সঙ্খাকে reverse করবে । আসুন এর লজিক বোঝা যাক , কিভাবে ১২৩ কে ৩২১ এ তৈরি করা যায় ?
ধরি নাম্বারটি 123 এবার , ১২৩ কে ১০ দ্বারা ভাগ করে ভাগশেষ কত হয় বের করি অর্থাৎ123%10 = 3 = a।এবার ১২৩ কে ১০ দ্বারা আবার ভাগ করবো। তারপর এর ভাগফল কত হয় তা দেখবো 123/10 =12। যেহেতু এর ভাগফল ০ নয় তাই a কে ১০ দ্বারা গুন করবো a = 30 । ১২৩ কে ১০ দ্বারা ভাগ করার ফলে যে ভাগফল বের হয়েছিলো অর্থাৎ ১২ । সেই ১২ কে ১০ দ্বারা ভাগ করে ভাগশেষ কত হয় তাই বের করি 12%10=2=b।এবার ১২ কে ১০ দ্বারা আবার ভাগ করি এবং ভাগফল কত হয় তাই দেখবো ,12/10 = 1।
যেহেতু ভাগফল ০ নয় তাই a এবং b কে ১০ দ্বারা গুন করবো তখন a = 300 & b = 20 হবে ।
১২ কে ১০ দ্বারা ভাগ করার পর যে ভাগফল বের হয়েছে তাকে অর্থাৎ ১ কে ১০ দ্বারা ভাগ করে ভাগশেষ বের করি , 1%10 =1=cএবার ১ কে ১০ দ্বারা আবার ভাগ করি এবং ভাগফল কত হয় তাই দেখবো 1/10 = 0 যেহেতু ভাগফল এর মান ০ তাই আমরা এখানে থেমে যাবো( উল্লেখ্যু যে যতক্ষণ প্রযন্ত ০ না হবে ততক্ষণ প্রযন্ত এভাবে করে যেতে হবে । )
এবার a ,b , c কে যোগ করি । a+b+c. = 300+20+1 = 321 ।

যেভাবে সি প্রোগ্রামটি করতে হবে ।

Input হিসেবে একটি num নিতে হবে ।
(1) rev_num = 0 দিয়ে প্রোগ্রামটি শুরু হবে ।
(2) এবার while এর মধ্যে num != 0 এই শর্ত টি দিতে হবে । অর্থাৎ নাম্বার ০ থেকে বড় হলেই লুপটি চলবে ।
        (a)num কে 10 দ্বারা ভাগ করে এর ভাগশেষ বের করতে হবে।যাকে আমরা remainder বলবো ।এরপর rev_num কে 10 দ্বারা গুন করতে হবে এবং রিমান্ডারের নাম্বার টি যোগ করতে হবে।
remainder = num%10;
rev_num = rev_num*10 + remainder;
 (b) num কে 10 দ্বারা ভাগ করতে হবে ।
(3) এবার rev_num কে প্রিন্ট করে পর্দায় আউটপুট দেখাতে হবে ।
#include <stdio.h>
int main()
{
    int num,  rev_num = 0, remainder;

    printf("Enter an integer: ");
    scanf("%d", &num);

    while(num != 0)
    {
        remainder = num%10;
        rev_num = rev_num*10 + remainder;
        num = num/10;
    }

    printf("rev_num = %d", rev_num);

   
}

No comments

Powered by Blogger.