Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình tìm sự khác biệt lớn nhất giữa chỉ số của hai số khác nhau bất kỳ trong C ++

Trong bài toán này, chúng ta được đưa ra một mảng arr [] gồm n số nguyên. Nhiệm vụ của chúng tôi là tạo một chương trình để tìm sự khác biệt lớn nhất giữa chỉ số của nhiều số khác nhau trong C ++.

Mô tả mã - Ở đây, chúng ta cần tìm sự khác biệt lớn nhất giữa chỉ số của các giá trị nguyên của mảng, cho rằng hai số nguyên khác nhau.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

arr[] = {4, 1, 3, 2, 1, 2, 4}

Đầu ra

5

Giải thích

Sự khác biệt giữa chỉ mục 0, phần tử 4 và chỉ số 5, phần tử 2.

Phương pháp tiếp cận giải pháp

Chúng tôi sẽ cố gắng tìm ra sự khác biệt lớn nhất có thể giữa chỉ mục của các phần tử đơn nhất từ ​​mảng.

Chương trình hiển thị việc triển khai giải pháp của chúng tôi,

Ví dụ

#include <iostream>
using namespace std;
int maximum(int a, int b){
   if(a > b)
      return a;
      return b;
}
int CalcMaxIndDiff(int a[], int n) {
   int indDiff1 = 0, indDiff2 = 0;
   int i = 0;
   while(i < (n - 1)){
      if(a[0] != a[i]){
         indDiff2 = i;
         break;
      }
      i++;
   }
   i = (n - 1) ;
   while(i > 0){
      if(a[0] != a[i]){
         indDiff1 = i;
         break;
      }
      i--;
   }
   return maximum(indDiff1, indDiff2);
}
int main() {
   int arr[] = { 4, 1, 3, 2, 1, 2, 4 };
   int n = 7;
   cout<<"The maximum difference between the index of any two different numbers is "<<CalcMaxIndDiff(arr, n);
   return 0;
}

Đầu ra

The maximum difference between the index of any two different numbers is 5