#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";
}
}
// Hàm Tính Tổng
// 1 Khai báo biến Tổng S = 0
// 2. Duyệt
// 2.1 Nếu
// Tính tổng
// 3 Trả về tổng
//207 Tổng các ptử cực trị – Cực trị là ptử khi nó lớn hoặc nhỏ hơn ptử xung quanh
// VD : 2 4 6 3 4 1 6
// ==> 2 6 3 4 1 6
int Tong_CucTri(int A[], int N)
{
int S = 0;
for (int i = 1; i < N - 1; i++)
{
// Xét phần tử thứ i
if ((A[i] > A[i - 1] && A[i] > A[i + 1]) || (A[i] < A[i - 1] && A[i] < A[i + 1]))
S = S + A[i];
}
// Xét phần tử đầu tiên
if (A[0] > A[1] || A[0] < A[1])
S += A[0];
// Xét phần tử cuối cùng
if (A[N - 1] > A[N - 2] || A[N - 1] < A[N - 2])
S += A[N - 1];
return S;
}
//208 Tổng các ptử chính phương
bool KiemTra_SCP(int N)
{
for (int i = 1; i <= N / 2; i++)
{
if (i * i == N)
return true; // Là số chính phương
}
return false; // Không là số chính phương
}
int Tong_SCP(int A[], int N)
{
int S = 0;
for (int i = 0; i < N; i++)
{
// Gọi hàm kiểm tra SCP
bool kq = KiemTra_SCP(A[i]);
if (kq)
S += A[i];
}
return S;
}
//209 Tổng các ptử đối xứng
// VD : 123
// ==> 3 ==> 0 * 10 + 3 = 3
// ==> 2 ==> 3 * 10 + 2 = 32
// ==> 1 ==> 32 * 10 + 1 = 321
int SoDaoNguoc(int N)
{
int sdn = 0;
while (N > 0)
{
int dv = N % 10;
sdn = sdn * 10 + dv;
N = N / 10;
}
return sdn;
}
// VD : 1 12 121 321 454
int Tong_SDX(int A[], int N)
{
int S = 0;
for (int i = 0; i < N; i++)
{
int sdn = SoDaoNguoc(A[i]);
if (sdn == A[i])
{
S += A[i];
}
}
return S;
}
int main()
{
int N = 0;
NhapN(N);
int A[MAX];
NhapMang(A, N);
cout << "MANG BAN DAU\n";
XuatMang(A, N);
cout << "\n";
int kq_207 = Tong_CucTri(A, N);
cout << "BAI TAP 207 : tong cuc tri = " << kq_207;
cout << "\n";
int kq_208 = Tong_SCP(A, N);
cout << "BAI TAP 208 : tong so chinh phuong = " << kq_208;
cout << "\n";
int kq_209 = Tong_SDX(A, N);
cout << "BAI TAP 209 : tong so doi xung = " << kq_209;
cout << "\n";
cout << "\n";
return 0;
}
Link Code : http://codepad.org/ve0F5hVe
Không có nhận xét nào:
Đăng nhận xét