الرقم المفقود [ لوغاريتمات ]

اللوغاريتم الأول لحساب الرقم المفقود
لو أن لديك عدد من الأرقام ( ن - ١ ) هذه الأرقام من ١ إلى ن
مثال: [ ١، ٢، ٤، ٥، ٦، ٣، ؟، ٨ ]        -- ن -->  ٨
لا تكرار في هذه الأرقام و هناك رقم وحيد مفقود في هذه المتسلسلة
ما هي أفضل طريقة للحصول على المفقود ؟؟؟

هناك طريقة سحرية فعالة لحساب ذلك ، لو أن لديك رقم ن هناك معادلة لحساب مجموع السلسلة من ١ إلى ن ==> ن*(ن+١)/٢ ثم تطرح من هذا المجوع عناصر السلسلة ذات الرقم المفقود و تكون النتيجة هذا الرقم ;)

مثال:

سلسلة:  [ ١، ٢، ٤، ٥، ٦، ٣، ؟، ٨ ]
ن: ٨

الرقم المفقود = ٨*(٨+١)/٢ - ١ - ٢ - ٤ - ٥ - ٦ - ٣ - ٨ = ٧


public static void main(String[] args) {
   System.out.println(getMissedNumber(new int[]{ 1, 2, 4, 5, 6, 3, 8 }, 8));
}

public static int getMissedNumber(int a[], int n) {
   int total;
   total  = (n)*(n+1)/2;
   for ( int i = 0; i < a.length; i++)
      total -= a[i];
   return total;
}


 

ليست هناك تعليقات:

إرسال تعليق

---- أتشرف بتعليقاتكم ----