কম্পিউটার টিউটোরিয়াল

C++-এ একটি সংখ্যা অর্জন করা


ধরুন আপনি একটি অনন্ত সংখ্যা রেখায় ০ অবস্থানে দাঁড়িয়ে আছেন। এখন লক্ষ্য অবস্থান target-এ একটি গোল রয়েছে। এখানে প্রতিটি চলে আপনি হয় বামে বা ডানে যেতে পারেন। n-তম চলে (১ থেকে শুরু করে) আপনি n ধাপ নেবেন। আমাদের গন্তব্যে পৌঁছাতে প্রয়োজনীয় ন্যূনতম ধাপের সংখ্যা বের করতে হবে। তাই যদি ইনপুট হয় target = 3, তবে আমাদের ২ ধাপ দরকার। ০ থেকে ১, ১ থেকে ৩।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব −

  • target := |target|, cnt := ০
  • যখন target > ০,
    • cnt ১ বৃদ্ধি করুন
    • target := target – cnt
  • যদি target সম হয়, তবে cnt ফেরত দিন, অন্যথায় cnt + 1 + cnt mod 2

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন −

উদাহরণ

#include <bits/stdc++.h> using namespace std; class Solution {    public:    int reachNumber(int target) {       target = abs(target);       int cnt = 0;       while(target > 0){          target -= ++cnt;       }       return target % 2 == 0? cnt : cnt + 1 + cnt % 2;    } }; main(){    Solution ob;    cout << (ob.reachNumber(3)); }

ইনপুট

3

আউটপুট

2

  1. Frugal সংখ্যা চেক করা (C++)

  2. C++ দিয়ে পেন্টাটপ (Pentatope) সংখ্যা বের করা

  3. C++-এ সর্টেড অ্যারেতে সবচেয়ে কাছাকাছি সংখ্যা (Closest Number) খুঁজে বের করা

  4. C++-এ অ্যাডাম সংখ্যা (Adam Number) চেক করার পদ্ধতি