Thứ Bảy, 5 tháng 4, 2014

Một số kĩ thuật cơ bản khi làm bài toán ma trận


• Kĩ thuật đặt cờ hiệu.
Viết hàm kiểm tra xem trong ma trận các số nguyên có tồn tại các số nguyên lẻ lớn hơn 100 không?

Giải:
int KiemTraLe (MATRAN a, int d, int c)
{
          int flag = 0;                               //tra ve 1 neu co nguoc lai tra ve 0
          for (int i = 0; i < d; i ++ )
               for (int j = 0; j < c; j++)
                    if ( a[i][j] % 2 != 0 && a[i][j] > 100 )
                         {
                               flag = 1;
                               break;
                          }
          return flag;
}

• Kĩ thuật đặt lính canh.
Viết hàm tìm phần tử nhỏ nhất trong ma trận.

Giải:
int Min (MATRAN a, int d, int c )
{
        int min = a[0][0];
        for ( int i = 0 ; i < d ; i ++ )
             for (int j = 0 ; j < c ; j ++)
                   if ( a[i][j] < min )
                        min = a[i][j];
                   return min;
}

• Phương pháp tính tổng.
Viết hàm tính tổng các phần tử trong ma trận.

Giải:
long Tong (MATRAN a, int d, int c)
{
       long tong = 0;
       for ( int i = 0; i < d; i ++ )
             for ( int j = 0; j < c; j ++)
                    tong + = a[i][j];
                    return tong;
}

• Phương pháp sắp xếp.
Viết hàm sắp xếp ma trận tăng dần từ trên xuống dưới và từ trái sang phải không dùng mảng phụ.

Giải:
void SapTang(MATRAN a, int d, int c)
{
       for (int i = 0; i <= d*c-2; i ++)
            for (int j = 0; j <= d*c-1; j ++)
                 if (a[i/c][i%c] < a[j/c][j%c])
                    {
                           int tmp = a[i/c][i%c] ;
                           a[i/c][i%c] = a[j/c][j%c] ;
                           a[j/c][j%c] = tmp ;
                    }
}

• Phương pháp đếm
Viết hàm đếm các phần tử chẵn trong ma trận.

Giải:
int DemChan (MATRAN a, int d, int c)
{
     int dem = 0;
     for ( int i = 0 ; i < d ; i ++)
         for ( int j = 0 ; j < c ; j ++)
               if ( a[i][j] % 2 = = 0 )
                    dem ++;
                    return dem;
}

0 nhận xét:

Đăng nhận xét