মান লেট 1 থেকে n পর্যন্ত একটি নাম্বার লাইন আছে। প্রথমে আমরা পজিশন ০-এ আছি, এক ধাপ জাম্প করি ১-এ যেতে, তারপর দুই ধাপ জাম্প করি ৩-এ পৌঁছাতে, তারপর তিন ধাপ জাম্প করি ৬-এ পৌঁছাতে এবং এভাবে চলতে থাকে। আমাদের চেক করতে হবে এই নিয়ম মেনে আমরা পজিশন n-এ পৌঁছাতে পারি কিনা।
তাহলে, যদি ইনপুট হয় n = 21, তবে আউটপুট হবে True, কারণ 1+2+3+4+5+6 = 21
এটি সমাধান করতে, আমরা নিচের পদক্ষেপগুলো অনুসরণ করব −
- j:= (1 + square root of (1+8*n)) / 2
- যদি |j - int part of j| <= 0, তবে
- True রিটার্ন করুন
- অন্যথায় False রিটার্ন করুন
উদাহরণ
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন −
from math import sqrt def solve(n): j=(1+sqrt(1+8*n))/2 if abs(j-int(j))<=0: return True else: return False n = 21 print(solve(n))
ইনপুট
21
আউটপুট
True