পালিনড্রোম সংখ্যা বের করি সি প্রোগ্রামিং দিয়ে
১. প্যালিনড্রোম সংখ্যা
পালিনড্রমে সংখ্যা কিঃ সোজা কথায় যে সংখ্যা গুলোকে উল্টায়ে লিখলেও ওই সংখ্যা পাওয়া যায় তাকে পালিনড্রম সংখ্যা বলে। যেমনঃ ১২১,৩২৩,১৫৬৫১ .....এখন আমরা একটা সি প্রোগ্রাম লিখবো যা কিনা কোন একটা সংখ্যা পালিনড্রোম কিনা বলে দিবে।
প্রোগ্রামটি :
#include<stdio.h>
int main()
{
int dummy,n,rev=0,x;
printf("tomar nember ti dao\n");
scanf("%d",&n);
dummy=n;
while(n>0)
{
x=n%10;
rev=rev*10+x;
n=n/10;
}
if(dummy==rev)
printf("tomar sonkha %d ati palindrome sonkha\n",rev);
else
printf("tomar sonkha %d ati palindrome sonkha noy\n",rev);
return 0;
}
ইম্পুট :
একটি নম্বর লিখুন
343
আউটপুট :
প্রদত্ত নম্বর 343 একটি palindromeসংখ্যা।
কোডের ময়নাতদন্তঃ
আলগোরিদম : আমরা খুব সোজা এলগোরিদম ব্যবহার করবো।
০.শুরু কর।
১. সংখ্যাটি নাও।
২.সংখ্যাটি সংরক্ষণ কর।
৩.সখাটিকে উল্টাও।
৪.আগের (প্রকৃত )সংখ্যা == নতুন সংখ্যা হলে , হ্যা ,নয়তো না। (সি প্রোগ্রামিং এর == সমান চিহ্ন )
৫.শেষ কর।
আরোপড়ুন :আর্টিফিশিয়াল ইন্টেলিজেন্স পর্ব : ১ গুগল ড্রাইভেরলেস কার
০.) #include<stdio.h>
//ইনপুট আউটপুট এর লাইব্রেরি ফাংশন ডিক্লার করেছি।
int main()
//মূল প্রোগ্রাম এখন থেকে শুরু।
{
১).
int dummy,n,rev=0,x;
// ভেরিএবলে ডিক্লার,সংখানিতে n ,n কে সংরক্ষণ করতে একটা dummy ,ও রিভার্স করতে x ও rev ভেরিএবল ব্যবহার করেছি। rev =০ কেন তা নিচে দেখো।
printf("tomar nember ti dao\n");
scanf("%d",&n);
//ব্যবহার কারীর কাছ থেকে সংখ্যা নিয়ে n এ সংরক্ষণ করা হয়েছে।
dummy=n;
২).//উল্টানোর আগে মূল সংখ্যাটিকে একটা এক্সট্রা পাত্রে dammy তে সংরক্ষণ করা হয়েছে। যাতে উল্টান সংখ্যার সাথে তুলনা করতে পারি।
৩).একটা কথা মনে রেখ কোন সংখ্যার সর্বশেষ ডিজিটি পেতে সংখ্যাটিকে ১০ দ্বারা ,ভাগশেষ বের করতে হবে। এর সি প্রোগ্রামিং এ কোন সংখ্যার ভাগশেষ বের করা খুব সোজা। এর জন্য আলাদা +,- ,*,/ এর মতো ভাগশেষ অপারেটর আছে। তা হল % যা আমরা শতকরা চিহ্ন নাম চিনি। ১০ দ্বারা ভাগ করলে যেমন শেষ ডিজিট বের করা যায়,তেমনি ভাবে ১০ দ্বারা ভাগ কোরে শেষ ডিজিটবাদ দেওয়া যায়। এই দুই পদ্ধতি কাজে লাগিয়ে আমরা কোনো সংখ্যাকে উল্টাবো। উপরে সংখ্যাটি ছিল ৩৪৩,
while(n>0)
{
x=n%10;
rev=rev*10+x;
n=n/10;
}
//while লুপ ব্যবহার করেছি ,যার শর্ত হবে n >০ না হওয়া পযন্ত আমাদের প্রোগ্রামটি চলবে ।
প্রথমবার :n =৩৪৩>০
প্রোগ্রাম চলবে ,
৩৪৩%১০=৩.এখন x =০*১০+৩=৩ ।
n =৩৪৩/১০=৩৪। ৩ কে বাদ দেওয়া হল,n =৩৪।
এই কাজ n এরমান শুন্য না হওয়া পোজোন্তেও চলবে।
দ্বিতীয়বার :n =৩৪>০
প্রোগ্রাম চলবে ,
৩৪%১০=৪.এখন x =৩*১০+৪=৩৪।
n =৩৪/১০=৩৪। ৪ কে বাদ দেওয়া হল,n =৩।
তৃতীয়বার :n =>০
প্রোগ্রাম চলবে ,
৩%১০=৩.এখন x =৩৪*১০+৩=৩৪৩।
n =৩/১০=০।
চতুথ বার n =০>০, ভুল
while লুপ আর চলবে না। অবশ্য তার এর দরকার নাই আমরা rev =৩৪৩ এর উল্টা ৩৪৩ পেয়ে গেছি।
এখন dummy সাথে তুলনা করার পালা।
if(dummy==rev)
// dummy (৩৪৩)==rev (৩৪৩) সত্য ,তাই প্রিন্ট করবে:
printf("tomar sonkha %d ati palindrome sonkha\n",rev);
else
এর সমান নাহলে পালিনড্রোম হতো না।
printf("tomar sonkha %d ati palindrome sonkha noy\n",rev);
return 0;
}
আরো পড়ুনঃ decimal number to binary number converting by C programming
লিখেছেন ,
Md. Rusul Azom Sumon
CEO & FOUNDER azomTech
(লেখাটি লেখক কতৃক সংরক্ষিত কপি করা কপি করে পরিমার্জন করে অন্যকোথোও প্রকাশ করা সম্পূর্ণ নিষিদ্ধ ,কিন্তু অবাণিজ্যিক উদ্যেশে(শিক্ষার জন্য ) লেখকের অনুমতি নিয়ে ব্যবহার করা যাবে )
No comments