একটি সংখ্যা N দিয়ে দিলে আমাদের সংখ্যাটিকে তার বৃহত্তম বিজোড় সংখ্যা দিয়ে গুণতে হবে। যদি কোন বিজোড় সংখ্যা না থাকে তাহলে প্রিন্ট করুন -1।
যেমন আমরা "153" দিয়ে N শুরু করেছি এবং এই সংখ্যার বৃহত্তম বিজোড় সংখ্যাটি 5 তাই ফলাফলটি 5 সহ 153 এর গুণফল হবে অর্থাৎ 153 * 5 =765 এবং যদি সংখ্যাটির 246 এর মতো বিজোড় সংখ্যা না থাকে তবে আউটপুট অবশ্যই হবে হতে -1.
ইনপুট − N =198
আউটপুট − 1782
ব্যাখ্যা − 198 * 9 =1782
ইনপুট − N =15382
আউটপুট − 76910
ব্যাখ্যা − 15382 * 5 =76910
সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে −
-
ইনপুট N.
নিন -
প্রতিটি অঙ্ক অতিক্রম করুন এবং বিজোড় সংখ্যাগুলি সন্ধান করুন
-
সবচেয়ে বড় বিজোড় উপাদান খুঁজুন।
-
আসল সংখ্যা N.
সহ সবচেয়ে বড় বন্ধ উপাদানটি পণ্য করুন -
যদি -1 এর সাথে কোন বিজোড় উপাদান আপডেট ফলাফল না থাকে।
-
ফলাফল ফেরত দিন।
অ্যালগরিদম
Start In function int largestodd(int n) Step 1→ Declare and Initialize large as -1 Step 2→ Loop While n > 0 Set digit as n % 10 If digit % 2 == 1 && digit > large then, Set large as digit Set n as n / 10 Step 3→ Return large In function int findproduct(int n) Step 1→ Declare and Initialize large set largestodd(n) Step 2→ If large == -1 then, Return -1 Step 3→ Return (n * large) In function int main() Step 1→ Initialize n as 15637 Print the results from calling findproduct(n) Stopকলিং থেকে ফলাফল প্রিন্ট করুন
উদাহরণ
#include <stdio.h> int largestodd(int n){ // If all digits are even then // we wil return -1 int large = -1; while (n > 0) { // checking from the last digit int digit = n % 10; // If the current digit is odd and // is greater than the large if (digit % 2 == 1 && digit > large) large = digit; n = n / 10; } // To return the maximum // odd digit of n return large; } int findproduct(int n){ int large = largestodd(n); // If there are no odd digits in n if (large == -1) return -1; // Product of n with its largest odd digit return (n * large); } int main(){ int n = 15637; printf("%d\n", findproduct(n)); return 0; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবে109459