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

সি-তে প্রথম N প্রাকৃতিক সংখ্যা যেন সংলগ্ন পার্থক্য > 1 হয় এমনভাবে বিন্যাস


প্রথম N প্রাকৃতিক সংখ্যা দেওয়া আছে। এমন একটি পারমুটেশন বের করতে হবে যেন প্রতিটি সংলগ্ন জোড়ার निरপেক্ষ পার্থক্য ১ এর চেয়ে বড় হয়। না থাকলে -1 রিটার্ন করুন।

উপায়: লালচী (greedy) পদ্ধতি। সব বিজোড় সংখ্যা ক্রমবর্ধমান/ক্রমহ্রাসমান ক্রমে সাজান, তারপর সব জোড় সংখ্যা ক্রমহ্রাসমান/ক্রমবর্ধমান ক্রমে সাজান।

অ্যালগরিদম

arrangeN(n)

Begin if N==1 return 1 if N==2 or 3 return -1 even_max, odd_max = N বা N-1 অনুযায়ী while odd_max >= 1 print odd_max, odd_max -= 2 while even_max >= 2 print even_max, even_max -= 2 End

উদাহরণ

#include <iostream> using namespace std; void arrangeN(int N) {    if (N==1) { cout<<"1"; return; }    if (N==2 || N==3) { cout<<"-1"; return; }    int even_max=-1, odd_max=-1;    if (N%2==0) { even_max=N; odd_max=N-1; } else { odd_max=N; even_max=N-1; }    while (odd_max>=1) { cout<<odd_max<<" "; odd_max-=2; }    while (even_max>=2) { cout<<even_max<<" "; even_max-=2; } } int main() {    int N=8;    arrangeN(N); }

আউটপুট

7 5 3 1 8 6 4 2

  1. C প্রোগ্রাম: প্রথম n প্রাকৃতিক সংখ্যার ঘনফলের যোগফল

  2. পাইথনে প্রথম N প্রাকৃতিক সংখ্যার পারমুটেশন থেকে মেডিয়ান M হয় এমন সাবঅ্যারে গণনা করুন

  3. পাইথনে X-এর চেয়ে বড় না হওয়া প্রাকৃতিক সংখ্যার বর্গের যোগফলের সর্বোচ্চ N বের করা

  4. পাইথনে দেওয়া লিস্টের সন্নিহিত উপাদানগুলোর পার্থক্য নির্ণয়