ধরুন আমাদের একটি পূর্ণসংখ্যা n আছে, আমাদের 0 এবং 1 (একচেটিয়া) এর মধ্যে সমস্ত সরলীকৃত ভগ্নাংশের একটি তালিকা খুঁজে বের করতে হবে যেমন হর <=n। এখানে ভগ্নাংশ যেকোনো ক্রমে হতে পারে।
সুতরাং, যদি ইনপুট n =4 এর মত হয়, তাহলে আউটপুট হবে ["1/2","1/3","1/4","2/3","3/4"] "2" হিসেবে /4" একটি সরলীকৃত ভগ্নাংশ নয় কারণ এটিকে "1/2" এ সরলীকৃত করা যেতে পারে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি অ্যারে ret সংজ্ঞায়িত করুন
-
আরম্ভ করার জন্য i :=2, যখন i <=n, আপডেট করুন (i 1 দ্বারা বাড়ান), করবেন −
-
j শুরু করার জন্য :=1, যখন j করুন
-
c :=i এবং j
এর gcd -
a :=j / c
-
b :=i / c
-
ret এর শেষে সন্নিবেশ করুন (a as string concatenate "/" concatenate b as string)
-
-
-
ret
-এ উপস্থিত সকল অনন্য উপাদানের একটি অ্যারে ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
#includenamespace ব্যবহার করে std;void print_vector(vector v){ cout <<"["; for(int i =0; i সরলীকৃত ভগ্নাংশ(int n) { vector ret; (int i =2; i <=n; i++) {এর জন্য (int j =1; j s(ret.begin(), ret.end()); রিটার্ন ভেক্টর (s.begin(), s.end()); }};প্রধান(){সমাধান ob; print_vector(ob.simplifiedFractions(4));}
ইনপুট
4