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

السؤال

Recommended Posts

  • 0
نشر

السلام عليكم @وضاح حجاج

يمكنك القيام بذلك من خلال عمل ميثود تاخد مدخل المستخدم كنوع vector صنف int و قيمة حجم المصفوفة من نوع vector / اول عنصر فيها وهو 0  ويمكن القيام بذلك برمجياً هكذا 

نقوم بإستيراد المكتبات أولاً 

#include<bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;

ثم نقوم بعمل الميثود التي ذكرناها فوق 

int findStuplets(vector<int> df, int n)
{

    int index = 0;
    int RHS[n*n*n + 1];
    for (int i = 0; i < n; i++)
      if (df[i]) 
        for (int j = 0; j < n; j++)
          for (int k = 0; k < n; k++)
            RHS[index++] = df[i] * (df[j] + df[k]);


    sort(RHS, RHS + n);
 
    int result = 0;
  
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            for(int k = 0; k < n; k++)
            {
                int val = df[i] * df[j] + df[k];
                result += (upper_bound(RHS, RHS + index, val) -
                          lower_bound(RHS, RHS + index, val));
            }
        }
    }
 
    return result;
}


 

ثم نقوم بأخد مدخلات المستخدم في الفنشكن الرئيسية وإستدعاء الميثود السابقة لطباعة النتيجة 

int main()
{
    int s;
   
    vector<int> df;
     
    for (int i = 0; df.size() < 6; i++) 
    {
        cin >> s;
        df.push_back(s); 
    }
    int n = sizeof(df)/sizeof(df[0]);
    std::cout << findSextuplets(df, n) << endl;
    std::cout << std::endl;
  
    return 0;
}

الشكل النهائي يصبح هكذا 

#include<bits/stdc++.h>
#include <iostream>
#include <vector>


using namespace std;


int findStuplets(vector<int> df, int n)
{

    int index = 0;
    int RHS[n*n*n + 1];
    for (int i = 0; i < n; i++)
      if (df[i]) 
        for (int j = 0; j < n; j++)
          for (int k = 0; k < n; k++)
            RHS[index++] = df[i] * (df[j] + df[k]);


    sort(RHS, RHS + n);
 
    int result = 0;
  
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            for(int k = 0; k < n; k++)
            {
                int val = df[i] * df[j] + df[k];
                result += (upper_bound(RHS, RHS + index, val) -
                          lower_bound(RHS, RHS + index, val));
            }
        }
    }
 
    return result;
}
 
int main()
{
    int s;
   
    vector<int> df;
     
    for (int i = 0; df.size() < 6; i++) 
    {
        cin >> s;
        df.push_back(s); 
    }
    int n = sizeof(df)/sizeof(df[0]);
    std::cout << findSextuplets(df, n) << endl;
    std::cout << std::endl;
  
    return 0;
}

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...