Thứ Bảy, 3 tháng 12, 2016

Bài tập 195 Liệt kê các bộ 3 giá trị (a,b,c) thỏa a=b+c. ví dụ: (6,2,4)


#include <iostream>
using namespace std;

#define MAX 100

// MẢNG 1 CHIỀU 
// 1. HÀM NHẬP SỐ PHẦN TỬ
void NhapN(int &N)
{
 do
 {
  cout << "Moi ban nhap so phan tu cua mang N = ";
  cin >> N;

  // 0 < N <= MAX
  // Điều kiện phải ngược lại 
  if (N <= 0 || N > MAX)
   cout << "Nhap sai vui long nhap la 0 < N <= " << MAX << "\n";

 } while (N <= 0 || N > MAX);
}

// 2. HÀM NHẬP MẢNG
void NhapMang(int A[], int N)
{
 for (int i = 0; i < N; i++)
 {
  cout << "A[" << i << "]= ";
  cin >> A[i];
 }
}

// 3. HÀM XUẤT MẢNG
void XuatMang(int A[], int N)
{
 for (int i = 0; i < N; i++)
 {
  cout << A[i] << "\t";
 }
}

// 195 Liệt kê các bộ 3 giá trị (a,b,c) thỏa a=b+c. ví dụ: (6,2,4)
void LietKe_Bo_3_ThoaDK_C1(int A[], int N)
{
 for (int x = 0; x < N - 2; x++)
 {
  for (int y = x + 1; y < N - 1; y++)
  {
   for (int z = y + 1; z < N; z++)
   {
    if (A[x] == A[y] + A[z])
     cout << "(" << A[x] << "," << A[y] << "," << A[z] << ")\n";
   }
  }

 }
}

void LietKe_Bo_3_ThoaDK_C2(int A[], int N)
{
 for (int x = 0; x < N - 2; x++)
 {
  for (int y = x + 1; y < N - 1; y++)
  {
   for (int z = y + 1; z < N; z++)
   {
    if (A[x] == A[y] + A[z])
     cout << "(" << A[x] << "," << A[y] << "," << A[z] << ")\n";

    if (A[y] == A[x] + A[z])
     cout << "(" << A[y] << "," << A[x] << "," << A[z] << ")\n";

    if (A[z] == A[x] + A[y])
     cout << "(" << A[z] << "," << A[x] << "," << A[y] << ")\n";
   }
  }

 }
}


int main()
{

 int N = 0;
 NhapN(N);

 int A[MAX];
 NhapMang(A, N);
 cout << "MANG BAN DAU\n";
 XuatMang(A, N);
 cout << "\n";

 cout << "Bai 195 C1: \n";
 LietKe_Bo_3_ThoaDK_C1(A, N);

 cout << "\n";
 cout << "Bai 195 C2: \n";
 LietKe_Bo_3_ThoaDK_C2(A, N);
 cout << "\n";
 
 return 0;
}

Link code backup : http://codepad.org/qHC4hUoR

Không có nhận xét nào:

Đăng nhận xét