Bài tập ôn thi C++ - Dạng bài: Tính mảng S
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 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:
bai_tap_on_thi_c_dang_bai_tinh_mang_s.docx

