ধরুন আমাদের একটি অ-ঋণাত্মক পূর্ণসংখ্যা c আছে, আমাদেরকে সিদ্ধান্ত নিতে হবে যে দুটি পূর্ণসংখ্যা a এবং b আছে কিনা যাতে এটি a^2 + b^2 =c সন্তুষ্ট করে।পি>
সুতরাং, যদি ইনপুটটি 61 এর মত হয়, তাহলে আউটপুটটি True হবে, যেমন 61 =5^2 + 6^2।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি ফাংশন isPerfect() সংজ্ঞায়িত করুন, এটি x,
লাগবে -
sr :=x
এর বর্গমূল -
(sr - sr-এর ফ্লোর) 0
হলে true রিটার্ন করুন -
প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন,
-
যদি c 0 এর সমান হয়, তাহলে −
-
প্রত্যাবর্তন সত্য
-
-
আরম্ভ করার জন্য i :=0, যখন i
-
b :=c - i * i
-
যদি isPerfect(b) সত্য হয়, তাহলে -
-
প্রত্যাবর্তন সত্য
-
-
-
ফেরত মিথ্যা
উদাহরণ
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
#include <bits/stdc++.h> using namespace std; class Solution { public: bool isPerfect(int x){ long double sr = sqrt(x); return ((sr - floor(sr)) == 0); } bool judgeSquareSum(int c) { if (c == 0) return true; int b; for (int i = 0; i < ceil(sqrt(c)); i++) { b = c - i * i; if (isPerfect(b)) return true; } return false; } }; main(){ Solution ob; cout << (ob.judgeSquareSum(61)); }
ইনপুট
61
আউটপুট
1