কম্পিউটার

C++ এ প্রদত্ত সংখ্যা কমাতে প্রয়োজনীয় অপারেশনের সংখ্যা গণনা করুন


আমাদের একটি ধনাত্মক পূর্ণসংখ্যা K এবং একটি অ্যারে Ops [] দেওয়া হয়েছে যাতে পূর্ণসংখ্যা রয়েছে৷ লক্ষ্য হল K কমাতে প্রয়োজনীয় ক্রিয়াকলাপগুলির সংখ্যা খুঁজে বের করা যাতে এটি 0-এর কম হয়। অপারেশনগুলি হল −

  • প্রথম অপারেশন হল K + Ops[0], প্রথম উপাদান K

    এ যোগ করা হয়েছে
  • 1 এর পর K<0 পর্যন্ত K-তে Ops[i] যোগ করুন। যেখানে সূচী i একটি বৃত্তাকার পদ্ধতিতে পরিবর্তিত হতে থাকে। 0<=i

দ্রষ্টব্য − K<0 পর্যন্ত Ops[i] যোগ করতে থাকুন। যদি আমি শেষ উপাদান Ops[N-1] এ পৌঁছাই তাহলে আবার i=0 থেকে শুরু করুন। একটি বৃত্তাকার পদ্ধতিতে।

আমরা প্রথমে অ্যারে Ops[]>0 এর সমস্ত উপাদানের যোগফল পরীক্ষা করব। যদি হ্যাঁ হয় তাহলে K কখনই কমানো যাবে না। রিটার্ন-1। অন্যথায় K-তে Ops[i] যোগ করতে থাকুন এবং K<0 যদি হ্যাঁ লুপ ভেঙে যায় কিনা তা পরীক্ষা করুন।

সংযোজনের পরে অপারেশনের সংখ্যা বৃদ্ধি:K+Ops[i]।

উদাহরণ দিয়ে বোঝা যাক।

ইনপুট

ops[]={ -4,2,-3,0,2 }, K=5

আউটপুট − একটি সংখ্যা − 3

কমাতে প্রয়োজনীয় ক্রিয়াকলাপগুলির গণনা৷

ব্যাখ্যা − K হল 5৷ অপারেশনগুলি হল −

৷ <পূর্ব>1. K+ops[0]=5+(-4) =12. K+ops[1]=1+2 =33. K+ops[2]=3+(-3) =0

ইনপুট

ops[]={ 5,5,3,-2 }, K=10

আউটপুট − K কমানো যাবে না!!

ব্যাখ্যা −K হল 10। অপারেশন হল −

<পূর্ব>1. K+ops[0]=10+5=152. K+ops[1]=15+5=203. K+ops[2]=20+3=234. K+ops[3]=23+-2 =225. K+ops[0]=22+5=276. K+ops[1]=27+5=327। …………………

আমরা যদি প্রথম দিকে ops এর সমস্ত উপাদানের যোগফল পরীক্ষা করি []=5+5+3-2=11 এবং 11+10 সর্বদা +ve হয়। সুতরাং K কে −0 এ কমানো যাবে না।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

  • আমরা এলোমেলো পূর্ণসংখ্যার সাথে শুরু করা একটি পূর্ণসংখ্যা অ্যারে অপস নিই।

  • ভেরিয়েবল কে একটি ধনাত্মক মান দেওয়া হয়।

  • ফাংশন কাউন্টঅপারেশনস(int op[], int n, int k) K অ্যারে অপস[] এবং এর দৈর্ঘ্যকে প্যারামিটার হিসেবে নেয় এবং K কে 0-এর কম কমাতে প্রয়োজনীয় রিটার্ন অপারেশনগুলি।

  • গণনায় 0 হিসাবে অপারেশনের প্রাথমিক সংখ্যা নিন।

  • অপ্স[] এর উপাদানগুলির যোগফল গণনা করুন এবং সমষ্টিতে সংরক্ষণ করুন। যোগফল>=0 হলে -1 ফেরত দিন।

  • না হলে k>0 ops[i] এবং ইনক্রিমেন্ট কাউন্ট যোগ করতে থাকুন। যদি k<0 ব্রেক লুপ।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;long countOperations(int op[], int n, int k){ long count =0; int sum=0; int i=0; জন্য(int i=0;i=0) { রিটার্ন -1; } //সংখ্যা k কখনই কমানো যায় না কারণ যোগফল-k সর্বদা ধনাত্মক বা 0 while(k>0){ for(i=0;i0){ count++; k+=op[i]; } অন্য { বিরতি; } } } রিটার্ন গণনা;} int main(){ int Ops[] ={ 1,-1,5,-11}; int len=sizeof(Ops) / sizeof(Ops[0]); int K=10; long ans=countOperations(Ops,len,K); if(ans==-1) { cout<<"K কমানো যাবে না!!"; } else { cout<<"অপারেশনের সংখ্যা :"<<আনস; } রিটার্ন 0; }

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
অপারেশনের সংখ্যা :8

  1. C++ এ প্রদত্ত আকারের আয়তক্ষেত্রের ভিতরে সম্ভাব্য রম্বির সংখ্যা গণনা করুন

  2. প্রদত্ত সংখ্যা N-এ সংখ্যাগুলি গণনা করুন যা C++ এ N ভাগ করে

  3. C++ এ ন্যূনতম সংখ্যক প্রদত্ত ক্রিয়াকলাপ ব্যবহার করে একটি সংখ্যা m কে n এ রূপান্তর করুন

  4. একটি প্রদত্ত সংখ্যার সংখ্যা যোগ করার জন্য C++ প্রোগ্রাম