1. Tính tổng các phần tử của dãy số A = (a1,a2,....an) cho trước
2. Tính tổng các số dương trong dãy số A = (a1,a2,...an) cho trước
Giúp e với . Pls ><
Hãy xác định bài toán và viết thuật toán giải bài toán tính tổng các phần tử của dãy số A = { a 1 , a 2 , . . . , a n } cho trước.
+Xác định bài toán: (0,5đ)
- Input: n, dãy số A = { a 1 , a 2 , . . . , a n }
- Output: S=( a1 + a2 + … + an )
+ Thuật toán: (1,5đ)
Bước 1: Nhập n, và a 1 , a 2 , . . . , a n ; (0,5đ)
Bước 2: S ← 0; i ← 0;
Bước 3: i ← i + 1 ; (0,5đ)
Bước 4: Nếu i ⟨= n thì S ←S + ai ; và quay lại bước 3;
Bước 5: Thông báo kết quả S và kết thúc thuật toán. (0,5đ)
Bài 1 (8 điểm): TÍNH TỔNG
Cho dãy số a1, a2,..., aN và một số S. Hãy tính tổng các phần tử trong dãy mà chia hết cho S
Dữ liệu: Vào từ tệp văn bản BAI1.INP:
Dòng 1 : Hai số nguyên dương N và S (N ⩽ 105, S ⩽ 109)
Dòng 2 : N số nguyên dương a1, a2,..., aN (ai ⩽ 109)
Kết quả: Ghi ra tệp văn bản BAI1.OUT kết quả tìm được.
Ví dụ:
BAI1.INP | BAI1.OUT |
5 2 2 4 6 8 10 | 30 |
Bài 2 (6 điểm): HIỆU LỚN NHẤT
Cho 2 dãy số a1, a2,..., aN và b1, b2,..., bN , hãy tìm cặp số (x, y) sao cho x thuộc dãy a, y thuộc dãy b và chênh lệch giữa x và y là lớn nhất
Dữ liệu: Nhập vào từ tệp BAI2.INP gồm:
Dòng 1 : Số nguyên dương N ( N ⩽ 1000)
N dòng tiếp theo, mỗi dòng chứa 2 số nguyên ai và bi (ai, bi ⩽ 109)
Kết quả: Ghi ra tệp BAI2.OUT một số nguyên là chênh lệch lớn nhất của hai số (x, y) tìm được.
Ví dụ:
BAI2.INP | BAI2.OUT |
4 1 5 2 6 3 7 4 8 | 7 |
Bài 3 (4 điểm): GIÁ TRỊ CẶP SỐ
Ta định nghĩa giá trị cặp số nguyên dương (a, b) là số lượng ước số chung của a và b. Cho trước cặp số (a, b), hãy tính giá trị của cặp số này
Dữ liệu: Nhập vào từ tệp BAI3.INP gồm hai số nguyên dương a, b (a, b ⩽ 1012)
Kết quả: Ghi ra tệp BAI3.OUT một số nguyên là kết quả tìm được.
Ví dụ:
BAI3.INP | BAI3.OUT |
4 5 | 1 |
Ràng buộc:
Có 50% số test tương ứng với 50% số điểm có A, B ⩽ 100000
50% số test tương ứng với 50% số điểm còn lại không có ràng buộc gì thêm.
Bài 4 (2 điểm): ĐỐI XỨNG LẺ
Xâu đối xứng là xâu đọc từ trái sang phải cũng như đọc từ phải sang trái (Ví dụ “abba” là xâu đối xứng còn “abab” thì không). Ta định nghĩa xâu đối xứng lẻ là xâu đối xứng có độ dài lẻ.
Cho trước một xâu S có độ dài n và vị trí p, yêu cầu tìm độ dài xâu đối xứng lẻ dài nhất là xâu con của S và chứa vị trí p
Dữ liệu: Nhập vào từ tệp văn bản BAI4.INP:
· Dòng đầu chứa 2 số nguyên dương n, p (1 ⩽ p ⩽ n ⩽ 20000)
· Dòng thứ hai chứa xâu S độ dài n gồm các chữ cái tiếng Anh in thường
Kết quả: Ghi ra tệp văn bản BAI4.OUT độ dài xâu đối xứng lẻ dài nhất chứa vị trí p
Ví dụ:
BAI4.INP | BAI4.OUT |
7 7 abbbcce | 1 |
Ràng buộc:
50% số test tương ứng với 50% số điểm có n ⩽ 1000
50% số điểm còn lại không có ràng buộc gì thêm
------ HẾT ------
Bài 1 (8 điểm): TÍNH TỔNG
Cho dãy số a1, a2,..., aN và một số S. Hãy tính tổng các phần tử trong dãy mà chia hết cho S
Dữ liệu: Vào từ tệp văn bản BAI1.INP:
Dòng 1 : Hai số nguyên dương N và S (N ⩽ 105, S ⩽ 109)
Dòng 2 : N số nguyên dương a1, a2,..., aN (ai ⩽ 109)
Kết quả: Ghi ra tệp văn bản BAI1.OUT kết quả tìm được.
Ví dụ:
BAI1.INP | BAI1.OUT |
5 2 2 4 6 8 10 | 30
|
#include <bits/stdc++.h>
using namespace std;
int n,s,i,t;
int main()
{
freopen("bai1.inp","r",stdin);
freopen("bai1.out","w",stdout);
cin>>n>>s;
t=0;
for (int i=1; i<=n; i++)
{
int x;
cin>>x;
if (x%s==0) t+=x;
}
cout<<t;
}
Cho số nguyên dương N ( N ≤ 250 ) và dãy n số nguyên dương A1 A2,..., An mỗi số đều không vượt quá 500. Yêu cầu:
1) Đếm số lượng các phần tử có giá trị lẻ trong dãy số A.
2) Tính tổng giá trị các phần tử đứng vị trí chẵn trong dãy số A
3) Tính tổng giá trị các phần tử đứng vị trí lẻ trong dãy số A.
4) Tính tổng giá trị các phần tử là số chẵn đứng ở vị trí chẵn trong dãy A.
5) Tính tổng giá trị các phần tử là số lẻ đứng ở vị trí lẻ trong dãy A.
6) Tính trung bình cộng các phần tử trong dãy.
uses crt;
var a:array[1..250]of integer;
i,n,dem,t,t1,t2,t3,t4:integer;
begin
clrscr;
repeat
write('Nhap n='); readln(n);
until (0<n) and (n<=250);
for i:=1 to n do
begin
repeat
write('A[',i,']='); readln(a[i]);
until (0<a[i]) and (a[i]<=500);
end;
dem:=0;
for i:=1 to n do
if a[i] mod 2=1 then inc(dem);
writeln('So phan tu co gia tri le la: ',dem);
t:=0;
for i:=1 to n do
if i mod 2=0 then t:=t+a[i];
writeln('Tong cac phan tu co chi so chan la: ',t);
t1:=0;
for i:=1 to n do
if i mod 2=1 then t1:=t1+a[i];
writeln('Tong cac phan tu co chi so le la: ',t1);
t2:=0;
for i:=1 to n do
if (i mod 2=0) and (a[i] mod 2=0) then t2:=t2+a[i];
writeln('Tong cac phan tu chan co chi so chan la: ',t2);
t3:=0;
for i:=1 to n do
if (i mod 2=1) and (a[i] mod 2=1) then t3:=t3+a[i];
writeln('Tong cac phan tu co chi so le la: ',t3);
t4:=0;
for i:=1 to n do
t4:=t4+a[i];
writeln('Trung binh cong cac so trong day la: ',t4/n:4:2);
readln;
end.
Xây dựng thuật toán cho bài toán sau: cho 1 số nguyên dương N và dãy số nguyên A: a1,a2…aN. Hãy tính: a) Tổng các phần tử có giá trị dương: a1+a3+a5+a7 b) đếm xem trong dãy A có bao nhiêu phần tử có giá trị
a: #incldue <bits/stdc++.h>
using namespace std;
long long i,n,x,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x>0) t=t+x;
}
cout<<t;
return 0;
}
Bài 1 : CHo N và dãy số a1;a2...;aN. Viết thuật toán tính tổng những số âm trong dãy trên.
Bài 2 : CHo N và dãy số a1;a2...;aN. Viết thuật toán chỉ ra các phần tử bằng 0 trong dãy trên.
Bài 1.
Bước 1. Nhập N và dãy số \(a_1,a_2,...,a_N\)
Bước 2. \(i\leftarrow1\), \(S\leftarrow0\)
Bước 3. \(i\leftarrow i+1\)
Bước 4. 4.1 Nếu \(i>N\) thì kết thúc thuật toán và đưa ra kết quả.
4.2 \(a_i\ge0\) thì quay lại bước 3
4.3 \(S\leftarrow S+a_i\) rồi quay lại bước 3
Viết thuật toán tính tổng các phần tử bằng 0
Bài 1: Cho n và dãy số nguyên a1, a2, …, an. Tính và in ra màn hình tổng các số trong dãy a.
Bài 2. Cho n và dãy số nguyên a1, a2, …, an. In ra màn hình giá trị nhỏ nhất trong dãy a.
1:
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
t=t+x;
}
cout<<t;
return 0;
}
Viết thuật toán tính tổng các giá trị dương trong dãy số cho trước A = { a1, a2,…,an }
- Xác định input/output
- thuật toán
- ví dụ minh hoạ
hộ mình zới ạaa
#include <bits/stdc++.h>
using namespace std;
long long x,n,i,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x>0) t=t+x;
}
cout<<t;
return 0;
}
Cho số nguyên dương n và dãy số nguyên a1, a2,...an> một đoạn con của dãy là một dãy các phần tử liên tiếp a1,...,ak trong đó 1<=L<=R<=n.Hãy tính xem trong dãy đã cho có bao nhiêu đoạn con có tổng các phần tử bằng 0
Dữ Liệu Vào: Từ tệp văn bản TONG>INP có cấu trúc như sau:
-dòng đầu chứa số nguyên dương n, 1<=n<=10^5
-dòng thứ 2 chứa n số nguyên a1,a2,....an