Cho dãy A gồm N số nguyên: a1,a2,...,an.Hãy cho biết có bao nhiêu số chia hết cho 3 trong dãy A đã cho. a) Hãy xá định dữ liệu vào (Input) và dữ liệu ra (output) bài toán trên. b) Viết thuật toán để giải bài toán trên.
def count_pairs_divisible_by_3(arr):
n = len(arr)
# Đếm số lượng số dư khi chia cho 3
count_mod = [0, 0, 0]
for num in arr:
count_mod[num % 3] += 1
# Trường hợp 0: Số dư 0 + Số dư 0
count_pairs = count_mod[0] * (count_mod[0] - 1) // 2
# Trường hợp 1: Số dư 1 + Số dư 2
count_pairs += count_mod[1] * count_mod[2]
# Trường hợp 2: Số dư 1 + Số dư 1 hoặc Số dư 2 + Số dư 2
count_pairs += count_mod[1] * (count_mod[1] - 1) // 2
count_pairs += count_mod[2] * (count_mod[2] - 1) // 2
return count_pairs
# Thử nghiệm
arr = [3, 5, 7, 9, 11, 13, 15]
result = count_pairs_divisible_by_3(arr)
print(f"Số lượng cặp số có tổng chia hết cho 3 là: {result}"
Cho dãy số liệu thống kê (đơn vị là kg): 1, 2, 3, 4, 5 (1)
Dãy (1) có trung bình cộng x = 3kg và độ lệch chuẩn s = 2 kg.
Cộng thêm 4 kg vào mỗi số liệu thống kê của dãy (1), ta được dãy số liệu thống kê (đã hiệu chỉnh) sau đây (đơn vị là kg): 5, 6, 7, 8, 9.(2)
Khi đó ta có: Độ lệch chuẩn của dãy (2) là:
A. 2 kg
B. 3 kg
C. 4 kg
D. 6 kg
Cách 1. Ta có: Khi cộng vào mỗi số liệu của một dãy số liệu thống kê cùng một hằng số thì phương sai và độ lệch chuẩn không thay đổi. Do đó độ lệch chuẩn của dãy (2) vẫn là 2 kg.
Cách 2. Tính trực tiếp độ lệch chuẩn của dãy (2).
Đáp án: A.
Bài 1: Giá trị lớn nhất. Cho dãy số nguyên A=(a1, a2, …..,an), hãy cho biết giá trị lớn nhất của dãy con liên tiếp. Dữ liệu vào: Cho trong tệp tin văn bản SMAX.INP gồm
Dòng 1: Chứa số nguyên dương N≤107
Dòng 2: chứa n số nguyên a1, a2, …,an cách nhau ít nhất một dấu cách (Với mọi i: |ai |≤109 )
Kết quả ra: Ghi ra tệp tin văn bản SMAX.OUT là giá trị lớn nhất của dãy con liên tiếp của dãy A
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;
}
Bạn nào giải giúp mình bài này với!!
Cho một mảng N số nguyên dương, nhiệm vụ của bạn là đếm số lượng dãy con lien tiếp có tổng bằng X.Dữ liệu vào: File xsum1.inp gồm:
+ Dòng 1: ghi hai số nguyên N và X kích thước của dãy và tổng mục tiêu X.+ Dòng 2: Ghi N số nguyên a1,a2, … ,aN là các phần tử của dãy.
Dữ liệu ra: File xsum1.out gồm duy nhất một số là số lượng dãy con có tổng bằng x.Ràng buộc
1≤ n ≤ 2 ⋅105
1≤ x,ai ≤109
Ví dụ
Xsum1.inp | Xsum1.out |
5 72 4 1 2 7 | 3 |
const fi='xsum1.inp'
fo='xsum1.out'
var f1,f2:text;
a:array[1..20000]of integer;
i,n,j,x,dem,k,m,t:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n,x);
for i:=1 to n do
read(f1,a[i]);
dem:=0;
for i:=1 to n do
for j:=1 to n do
begin
for k:=1 to n do
if (i<j) and (j<k) then
begin
t:=0;
for m:=i to k do
t:=t+a[m];
if t=x then inc(dem);
end;
end;
for i:=1 to n do
if x=a[i] then inc(dem);
writeln(f2,dem);
close(f1);
close(f2);
end.
program COST;
var n,m,s,dem:int64;a:
array[1..1000000] of int64;
i,j:longint;
begin
readln(n,m);
for i := 1 to n do read(a[i]);
dem := 0;
for i := 1 to n do
begin
s := 0;
for j := i to n do
begin
s := s+a[j];
if s <= m then
begin
inc(dem);
continue;
end
else if a[j] > m then break;
end;
end;
write(dem);
end.
Câu 1. : Cho một dãy số. Tính tổng các số dương, tổng các số âm.
a. Xác định bài toán.
b. Viết thuật toán tính tổng các số dương, tổng các số âm.
c. Mô tả hoạt động của thuật toán. Cho biết kết quả của bài toán.
Dữ liệu thử: Dãy số | - 45 | 10 | 0 | - 15 | 48 | 23 | 50 |
a) Xác định bài toán
-Input: Dãy n số
-Output: Tổng các số dương, tổng các số âm
b) Mô tả thuật toán
-Bước 1: Nhập n và nhập dãy số
-Bước 2: t1←0; t2←0; i←1;
-Bước 3: Nếu a[i]>0 thì t1←t1+a[i]
nếu a[i]<0 thì t2←t2+a[i];
-Bước 4: i←i+1;
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Xuất t1,t2
-Bước 7: Kết thúc
Cho dãy số liệu (1) : a1; a2; a3...an-1; an trong đó a1; a2; ..an là các số cho trước có số trung bình cộng là x1
Và cho dãy số liệu (2): a1 - 1; a2; a3...an-1; an+ 1 có số trung bình cộng là x2
Chọn mệnh đề đúng?
A. x1 = x2
B. x1 > x2
C. x1 < x2
D. Không só sánh được
Chọn A.
Dãy số liệu thứ 2 có 2 số liệu khác với dãy số liệu 1 là số đứng ở vị trí đầu tiên và số đứng ở vị trí cuối cùng. Tuy nhiên tổng của số đứng đầu tiên + số đứng ở vị trí cuối cùng không thay đổi. Do đó; số trung bình không thay đổi.
Viết chương trình đọc số liệu của dãy N số trong tệp DATA1.TXT. Sau đó ghi dữ liệu là các thông tin sau vào tệp KQ1.TXT: - Dòng 1: Tổng các số lẻ trong dãy? - Dòng 2: Danh sách các số dương chia cho 5 có trong dãy, mỗi số cách nhau 1 cách
Program HOC24;
var i,n: integer;
a: array[1..1000] of integer;
t: longint;
f1,f2: text;
const fi='DATA1.TXT'
fo='KQ1.TXT'
begin
assign(f1,fi);
assign(f2,fo);
reset(f1);
rewrite(f2);
readln(f1,n);
for i:=1 to n do read(f1,a[i]);
t:=0;
for i:=1 to n do if a[i] mod 2=0 then t:=t+a[i];
writeln(f2,t);
for i:=1 to n do if a[i] mod 5=0 then write(f2,a[i],' ');
close(f1); close(f2);
end.
Tính số trung bình của dãy số liệu trong bảng 5 bằng hai cách: sử dụng bảng phân bố tần số và sử dụng bảng phân bố tần suất (theo các lớp chỉ ra trong bài tập 2 – bài 1).
Tính chiều cao trung bình của học sinh nam
Cách 1: Sử dụng bảng phân bố tần số ghép lớp
x− = (5 x 140 + 9 x 150 + 19 x 160 + 17 x 170 + 10 x 180) / 60
x− = 163
Cách 2: Sử dụng bảng phân bố tần suất ghép lớp
x− = (8,33 x 140 + 15 x 150 + 31,67 x 160 + 28,33 x 170 + 16,67 x 180) / 100
x− = 163
Tính chiều cao trung bình của học sinh nữ
Cách 1. Sử dụng bảng phân bố tần số ghép lớp
x− = (8 x 140 + 15 x 150 + 16 x 160 + 14 x 170 + 7 x 180) / 60
x− = 159,5
Cách 2: Sử dụng bảng phân bố tần suất ghép lớp
x− = (13,33 x 140 + 25 x 150 + 26,67 x 160 + 23,33 x 170 + 11,67 x 180) / 100
x− = 159,5