اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر (معدل)

لإستخراج الرقم الناقص من سلسلة ارقام سنقوم بالتالي:

تستخدم هذه الطريقة تقنية معادلة الجمع.

النهج: طول المصفوفة هو n-1. لذلك ، يمكن حساب مجموع جميع العناصر n ، أي مجموع الأرقام من 1 إلى n باستخدام الصيغة n * (n + 1) / 2.
الآن أوجد مجموع كل العناصر في المصفوفة واطرحه من مجموع أول عدد طبيعي n ، سيعطينا قيمة العنصر المفقود.
الخوارزمية:

  • احسب مجموع أول n من الأعداد الطبيعية كمجموع = n * (n + 1) / 2
  • قم بإنشاء مجموع متغير لتخزين مجموع عناصر المصفوفة.
  • اجتياز المصفوفة من البداية إلى النهاية.
  • قم بتحديث قيمة المجموع كـ sum = sum + array [i]
  • اطبع العدد المفقود كـ SumTotal - sum
#include <bits/stdc++.h>
using namespace std;

// دالة فحص السلسلة ارقام أو مصفوفة
int getMissingNo(int a[], int n)
{

	int total = (n + 1) * (n + 2) / 2; // 
	for (int i = 0; i < n; i++)
		total -= a[i];
	return total;
}

// Driver Code
int main()
{
	int arr[] = { 1, 3, 4, 5, 6 };
	int n = sizeof(arr) / sizeof(arr[0]);
	int miss = getMissingNo(arr, n);
	cout << miss;
}

وفي حالة هذا الكود سيكون الناتج (2):

62bb1ac977bd4_Screenshot2022-06-28181317.png.9ff70dd32cf944222e56b408f2a2c6ff.png

هذا الكود سيساعدك على حل السؤال الخاص بك.
 

تم التعديل في بواسطة محمد حجي2
  • 0
نشر

You are given a list of n-1 integers and these integers are in the range of 1 to n. There are no duplicates in the list. One of the integers is missing from the list. Print that  number (It's guaranteed that this number always exists)

The input is divided into 2 parts

N- the size of the array (N is always greater than 1)

A-the array

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...