| lab02 - CTDL & GT | |
|
|
Tác giả | Thông điệp |
---|
DEV.CENTER Thành viên tích cực
Tổng số bài gửi : 118 Votes : 13 Join date : 15/09/2011 Age : 30 Đến từ : The Torchwood Universe
| Tiêu đề: lab02 - CTDL & GT Tue Sep 20, 2011 8:10 pm | |
| lab cũ đã qua, lab2 đã tới... mọi người cùng thảo luận tiếp nào | |
|
| |
kid1412_92 Thành viên
Tổng số bài gửi : 2 Votes : 0 Join date : 19/09/2011
| Tiêu đề: Re: lab02 - CTDL & GT Tue Sep 20, 2011 9:30 pm | |
| nhung ma lab 2 thi co fan nao can thao luan the | |
|
| |
susu9x Thành viên
Tổng số bài gửi : 28 Votes : 0 Join date : 15/09/2011
| |
| |
DEV.CENTER Thành viên tích cực
Tổng số bài gửi : 118 Votes : 13 Join date : 15/09/2011 Age : 30 Đến từ : The Torchwood Universe
| |
| |
Admin Admin
Tổng số bài gửi : 80 Votes : 7 Join date : 14/09/2011 Age : 32 Đến từ : Hải Dương, Việt Nam
| Tiêu đề: Re: lab02 - CTDL & GT Wed Sep 21, 2011 7:39 am | |
| Nghe chừng không ai muốn nói trước nhỉ? Để mình vậy... Bạn có hướng giải quyết bài 3 trong lab 2 chưa??? | |
|
| |
DEV.CENTER Thành viên tích cực
Tổng số bài gửi : 118 Votes : 13 Join date : 15/09/2011 Age : 30 Đến từ : The Torchwood Universe
| Tiêu đề: Re: lab02 - CTDL & GT Wed Sep 21, 2011 11:07 am | |
| - Admin đã viết:
- Nghe chừng không ai muốn nói trước nhỉ? Để mình vậy... Bạn có hướng giải quyết bài 3 trong lab 2 chưa???
t có hướng nhưng chưa code nên ko biết có đc hay ko: b1: tìm phần tử cuối cùng có giá trị là 1 ở dòng thứ nhất. b2: dùng vòng while, từ phần tử đó dịch dần xuống dưới if (A[i][j]==0) i++;j--; if (A[i][j]==1) j++; dùng một mảng b để lưu những giá trị của các hàng có nhiều phần tử 1 nhất.. có j code rồi post sau
Được sửa bởi DEV.CENTER ngày Wed Sep 21, 2011 9:46 pm; sửa lần 1. | |
|
| |
kid1412_92 Thành viên
Tổng số bài gửi : 2 Votes : 0 Join date : 19/09/2011
| Tiêu đề: Re: lab02 - CTDL & GT Wed Sep 21, 2011 9:05 pm | |
| to k hgieu lam ve cach lam cua cau DEV.Center oi, theo to co cach giai don gian la gap 1 thi sang ngang gap 0 thi xuong dong thoi | |
|
| |
DEV.CENTER Thành viên tích cực
Tổng số bài gửi : 118 Votes : 13 Join date : 15/09/2011 Age : 30 Đến từ : The Torchwood Universe
| Tiêu đề: Re: lab02 - CTDL & GT Wed Sep 21, 2011 9:47 pm | |
| - kid1412_92 đã viết:
- to k hgieu lam ve cach lam cua cau DEV.Center oi, theo to co cach giai don gian la gap 1 thi sang ngang gap 0 thi xuong dong thoi
thì if (A[i][j]==1) j++; chả là sang ngang là j đấy if (A[i][j]==0) i++; j--; t xuống chéo chứ ko xuống thẳng.. tránh trường hợp có nhiều dòng cùng có số số 1 ngang nhau | |
|
| |
Admin Admin
Tổng số bài gửi : 80 Votes : 7 Join date : 14/09/2011 Age : 32 Đến từ : Hải Dương, Việt Nam
| Tiêu đề: Re: lab02 - CTDL & GT Wed Sep 21, 2011 11:06 pm | |
| - kid1412_92 đã viết:
- to k hgieu lam ve cach lam cua cau DEV.Center oi, theo to co cach giai don gian la gap 1 thi sang ngang gap 0 thi xuong dong thoi
Note: Bạn ơi... Post bài bằng tiếng Việt có dấu hoặc tiếng Anh nhé! | |
|
| |
Admin Admin
Tổng số bài gửi : 80 Votes : 7 Join date : 14/09/2011 Age : 32 Đến từ : Hải Dương, Việt Nam
| Tiêu đề: Re: lab02 - CTDL & GT Thu Sep 22, 2011 9:43 am | |
| Bài 1 trong lab 2 mình dùng đệ quy, chẳng biết đúng không nữa... có gì các bác chém nhẹ tay nhá! - Code:
-
// Tinh ham mu voi do phuc tap thoi gian O(logn) #include <iostream> #include <conio.h> using namespace std; long power( int x, int n); int main() { int x, n; cout << "Nhap vao gia tri co so: "; cin >> x; cout << "Nhap vao gia tri mu: "; cin >> n; cout << "\n" << x << "^" << n << " = " << power( x, n); getch(); return 0; } /* Do phuc tap O(n) long power( int x, int n) { int k; if(x == 0) return 0; if(n == 0) return 1; long multi = 1; k = int( n/2); for(int i = 0;i < k;i++) multi *= x; if(n%2 == 1) multi *= multi * x; else multi *= multi; return multi; } */ // Do phuc tap O(logn) long power( int x, int n) { long multi = 1; if(x == 0) return 0; if(n == 0) return 1; else multi = x*power( x, n-1); return multi; }
Còn bài 2 mình làm theo hướng chia thành từng cặp rồi so sánh. Phần tử lớn hơn "tống" về cuối dãy, phần tử nhỏ hơn đưa về đầu tiên, sau đó tìm min của 1/2 dãy đầu và max của 1/2 dãy sau... - Code:
-
// Tim max va min cua day n so su dung toi da 3n/2 phep so sanh #include <iostream> #include <conio.h> using namespace std; int main() { int *a, n; cout << "Kich thuoc mang A: "; cin >> n; a = new int [n]; // Nhap mang A for(int i = 0;i < n;i++) { cout << "A[" << i+1 << "] = "; cin >> a[i]; } // Xep nhom for(int i = 0;i < n/2;i++) if(a[i] > a[n-i-1]) { int temp = a[i]; a[i] = a[n-i-1]; a[n-i-1] = temp; } // Tim min, max tung doan chuoi int min, max; min = max = a[n/2+1]; for(int i = 0;i < n/2+1;i++) if(min > a[i]) min = a[i]; for(int i = n/2;i < n;i++) if(max < a[i]) max = a[i]; // Ket qua: cout << "\nMax = " << max; cout << "\nMin = " << min; getch(); return 0; }
Các chú chém nhẹ tay nhá! | |
|
| |
Admin Admin
Tổng số bài gửi : 80 Votes : 7 Join date : 14/09/2011 Age : 32 Đến từ : Hải Dương, Việt Nam
| Tiêu đề: Re: lab02 - CTDL & GT Thu Sep 22, 2011 10:34 am | |
| Tiện thể post luôn code bài FastFind... Anh em lên chỉ giáo nhiệt tình nhá! (Tuần sau em còn nộp bài... :=D>: ) - Code:
-
// Tim hang co nhieu so 1 nhat trong mang cho truoc #include <iostream> #include <conio.h> using namespace std; int main() { int **arr, *b, n; cout << "Nhap kich thuoc mang (n*n): "; cin >> n; arr = new int *[n]; b = new int [n]; for( int i = 0;i < n;i++) arr[i] = new int [n]; cout << "Nhap mang A:\n"; for( int i = 0;i < n;i++) for( int j = 0;j < n;j++) { cout << "Nhap A[" << i+1<< "][" << j+1 << "] = "; cin >> arr[i][j]; } // Dem so tren mang for(int j = 0, i = 0;i < n; ) { if(arr[i][j] == 1) { if(j >= n) { i++; j--; } else j++; b[i] = j; continue; } else { b[i] = j; i++; j--; } } // Ket qua cout << "\n"; int max = b[0]; for( int i = 0;i < n;i++) if(max < b[i]) max = b[i]; cout << "Hang co nhieu so 1 nhat la:\n"; for( int i = 0;i < n;i++) if(b[i] == max) cout << i+1 << "\n"; cout << "voi " << max << " so 1.\n"; // Giai phong bo nho delete []b; b = NULL; for( int i = 0;i < n;i++) { delete []arr[i]; arr[i] = NULL; } delete []arr; arr = NULL; getch(); return 0; }
| |
|
| |
DEV.CENTER Thành viên tích cực
Tổng số bài gửi : 118 Votes : 13 Join date : 15/09/2011 Age : 30 Đến từ : The Torchwood Universe
| Tiêu đề: Re: lab02 - CTDL & GT Thu Sep 22, 2011 1:29 pm | |
| - Admin đã viết:
- Bài 1 trong lab 2 mình dùng đệ quy, chẳng biết đúng không nữa... có gì các bác chém nhẹ tay nhá!
- Code:
-
// Tinh ham mu voi do phuc tap thoi gian O(logn) // Do phuc tap O(logn) long power( int x, int n) { long multi = 1; if(x == 0) return 0; if(n == 0) return 1; else multi = x*power( x, n-1); return multi; }
Các chú chém nhẹ tay nhá! cái này là O(logn) ư... O(logn) của mình đây. - Code:
-
float Power (int x, int n){ float kq; if (n==0) return 1; else if (n<0){ n = 0 - n; kq=1/Power(x,n); } else if ((n%2) == 0){ n/=2; kq=(Power(x,n)); kq*=kq; } else if ((n%2) != 0){ n=(n-1)/2; kq=(Power(x,n)); kq*=kq*x; } return kq; } | |
|
| |
Admin Admin
Tổng số bài gửi : 80 Votes : 7 Join date : 14/09/2011 Age : 32 Đến từ : Hải Dương, Việt Nam
| Tiêu đề: Re: lab02 - CTDL & GT Fri Sep 23, 2011 4:22 pm | |
| Hay quá... Đang phân vân cái bài này... Vote cho chú nha! | |
|
| |
tuanmarada Thành viên
Tổng số bài gửi : 1 Votes : 0 Join date : 22/09/2011
| Tiêu đề: Re: lab02 - CTDL & GT Sun Sep 25, 2011 11:22 am | |
| | |
|
| |
susu9x Thành viên
Tổng số bài gửi : 28 Votes : 0 Join date : 15/09/2011
| |
| |
Sponsored content
| Tiêu đề: Re: lab02 - CTDL & GT | |
| |
|
| |
| lab02 - CTDL & GT | |
|