এবার আমরা দেখবো লুপ দিয়ে কিভাবে কাজটি করা যায়।
#include<stdio.h>
int main()
{
int num,i,count=0;
printf("Enter a Number:\n");
scanf("%d",&num);
while(num>0)
{
num = num/10;
count++;
}
printf("Total digit = %d\n",count);
return 0;
}
ব্যাখ্যাঃ
একটা সংখ্যাকে ১০ দিয়ে ভাগ করলে এর সর্বশেষ অংকটি মুছে যায়।
মনেকরি আমাদের কাছে একটি সংখ্যা আছে ঃ 123456
এবার আমাদের প্রমাণ করতে হবে এখানে ছয়টি অংক আছে।
ধাপ - ১ঃ 123456 / 10 = 12345
১২৩৪৫৬ কে ১০ দিয়ে ভাগকরলে ভাগফল হবে ১২৩৪৫। তারমানে, আমরা সর্বশেষ অংকটি মুছে দিয়েছি।
count : 1.
ধাপ - ২ঃ 12345 / 10 = 1234
১২৩৪৫ কে ১০ দিয়ে ভাগকরলে ভাগফল হবে ১২৩৪। তারমানে, আমরা সর্বশেষ অংকটি মুছে দিয়েছি।
count : 2.
ধাপ - ৩ঃ 1234 / 10 = 123
১২৩৪ কে ১০ দিয়ে ভাগকরলে ভাগফল হবে ১২৩। তারমানে, আমরা সর্বশেষ অংকটি মুছে দিয়েছি।
count : 3.
প্রতিবার একটি সংখ্যা মুছার পর যদি আমরা count এর মান 1 করে বাড়াই , তাহলে আমরা উত্তর পেয়ে যাবো।
আশাকরি তোমরা বোঝতে পেরেছো। বাকী ধাপগুলো নিজেই করে ফেলো।
ব্রেকিং কন্ডিশনঃ
আমরা ব্রেকিং কন্ডিশন হিসেবে ব্যবহার করেছি num>0 তারমানে যতক্ষণ পর্যন্ত আমাদের সংখ্যাটা ০ এর চেয়ে বড় থাকবে ততক্ষণ পর্যন্ত লুপ চলবে। তাহলে আমাদের প্রোগ্রামে এমন কিছু করতে হবে যাতে num এর মান শুণ্য বা তার থেকে ছোট হয়। এই কাজটা আমরা করেছি num কে প্রতিবার 10 দিয়ে ভাগ করে।
আমরা ব্রেকিং কন্ডিশন হিসেবে ব্যবহার করেছি num>0 তারমানে যতক্ষণ পর্যন্ত আমাদের সংখ্যাটা ০ এর চেয়ে বড় থাকবে ততক্ষণ পর্যন্ত লুপ চলবে। তাহলে আমাদের প্রোগ্রামে এমন কিছু করতে হবে যাতে num এর মান শুণ্য বা তার থেকে ছোট হয়। এই কাজটা আমরা করেছি num কে প্রতিবার 10 দিয়ে ভাগ করে।
তোমাদের জন্য একটি কাজঃ ইউজারের কাছ থেকে একটি সংখ্যা ইনপুট নিবে এবং সবগুলা অংকের যোগফল নির্ণয়ের প্রোগ্রাম লিখবে।
Hints : Modulus operator ( % ) ব্যবহার করে সর্বশেষ সংখ্যা বের করো । :p
0 comments:
Post a Comment