অঙ্কের একটি স্ট্রিং দেওয়া, আমাদের এটিতে জোড় সাবস্ট্রিংগুলির গণনা খুঁজে বের করতে হবে। আসুন একটি উদাহরণ দেখি।
ইনপুট
num = "1234"
আউটপুট
6
প্রদত্ত স্ট্রিং থেকে যে জোড় সাবস্ট্রিংগুলি গঠিত হতে পারে তা হল
2 12 4 34 234 1234
অ্যালগরিদম
-
অঙ্ক দিয়ে স্ট্রিং শুরু করুন।
-
গণনা শুরু করুন 0।
-
স্ট্রিং এর উপর পুনরাবৃত্তি করুন।
-
অক্ষর 0 বিয়োগ করে বর্তমান অঙ্কটি পান বর্তমান অক্ষর সংখ্যা থেকে।
-
সংখ্যাটি জোড় কিনা তা পরীক্ষা করুন৷
-
যদি বর্তমান সংখ্যা জোড় হয়, তাহলে গণনায় এর সূচক যোগ করুন 1 যোগ করুন।
-
- গণনা ফেরত দিন।
বাস্তবায়ন
C++
-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল#include<bits/stdc++.h> using namespace std; int getEvenSubstringsCount(char str[]) { int len = strlen(str), count = 0; for (int i = 0; i < len; i++) { int currentDigit = str[i] - '0'; if (currentDigit % 2 == 0) { count += i + 1; } } return count; } int main() { char str[] = "12345678"; cout << getEvenSubstringsCount(str) << endl; return 0; }
আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
20