START, END, Y তিনটি ভেরিয়েবল দেওয়া আছে। লক্ষ্য হল [START, END] রেঞ্জে যেসব সংখ্যার অঙ্ক যোগফল Y, তাদের সংখ্যা বের করা।
রেঞ্জে লুপে প্রতিটি সংখ্যায় while লুপ দিয়ে অঙ্ক যোগফল বের করা হয়। যোগফল Y হলে কাউন্ট বাড়ানো হয়।
ইনপুট: START=10, END=20, Y=4
আউটপুট: অঙ্ক যোগফল Y হলে সংখ্যা: ১
ব্যাখ্যা: ১৩ (১+৩=৪)
ইনপুট: START=10, END=50, Y=5
আউটপুট: সংখ্যা: ৫
ব্যাখ্যা: ১৪, ২৩, ৩২, ৪১, ৫০
- START, END, Y নেওয়া হয়।
digitSum(int start, int end, int y)ফাংশন কাউন্ট রিটার্ন করে।- রেঞ্জে লুপে while দিয়ে অঙ্ক যোগফল বের করে Y-র সাথে মিলিয়ে চেক করা হয়।
#includeusing namespace std; int digitSum(int start, int end, int y){ int count = 0; for (int i = start; i <= end; i++){ int num = i, digsum = 0; while(num > 0){ digsum += num % 10; num /= 10; } if(digsum == y) count++; } return count; } int main(){ int START = 100, END = 1000, Y = 5; cout << "অঙ্ক যোগফল Y হলে সংখ্যা: " << digitSum(START, END, Y); return 0; }
উপরোক্ত কোড রান করলে আউটপুট:
অঙ্ক যোগফল Y হলে সংখ্যা: ১৫