Bài tập ôn thi C++ - Dạng bài: Tính mảng S

docx 2 trang Minh Nam 19/10/2024 540
Bạn đang xem tài liệu "Bài tập ôn thi C++ - Dạng bài: Tính mảng S", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: Bài tập ôn thi C++ - Dạng bài: Tính mảng S

Bài tập ôn thi C++ - Dạng bài: Tính mảng S
 Bài 4
#include
using namespace std;
long long n,a[100005];
long long sl;
long long maxx=-1e9;
int main(){
 cin>>n;
 for (int i= 1; i>a[i];
 for (int i=1; i< n; i++)
{
 sl=0;
 sl = sl+a[i];
 for (int j= i+1; j<= n; j++){
 sl = sl+a[j];
 if (maxx <sl) maxx=sl;
 }
 }
 cout<<maxx;
}
Bài 3
#include
using namespace std;
long long n,a[100005];
int main(){
 cin>>n;
 for (int i= 1; i>a[i];
 for (int i=1; i< n; i++)
 for (int j= i+1; j<= n; j++){
 if((a[i]+a[j])%3==0) cout <<a[i]<<","<<a[j]<<endl;
 }
 cout<<endl;
}
Namth: Câu 3 làm thế này thì sao được full điểm cô? Câu 4 cũng thế.
 - Câu 3 mình đếm số các số chia 3 dư 0, rồi số các số chia 3 dư 1, dư 2, dựa 
 vào đó rồi tính kết qua
Khai nghiem: Tư tưởng bài 3: một số chia cho 3 dư 0 chỉ ghép được với một số 
chia cho 3 dư 0, một số chia 3 dư 1 chỉ ghép được với một số chia 3 dư 2( hai số 
có tổng chia hết cho 3). gọi các số chia cho 3 dư 0, 1, 2 lần lượt là d0, d1, d2 khi 
đó kết quả là kq= d0*(d0-1)/2 +d1*d2. Việc tính d0, d1, d2 chỉ cần một vòng 
lặp: 
 for(i=1; i<=n; i++) 
 { if(a[i]%3 ==0) d0++; 
 if (a[i]%3 == 1) d1++; 
 if(a[i]%3 ==2) d2++};

File đính kèm:

  • docxbai_tap_on_thi_c_dang_bai_tinh_mang_s.docx