cho n và m và dãy a[i]( n số);
tính tổng 3 số khá nhau bất kì sao cho tổng đó bé hơn hoặc bằng k
giúp e vs ạ
Bài 1. Cho dãy số nguyên N và dãy a1, a2, a3, .., an (0<=N<=10^6; i=0,1,2,…,N – 1; |a(i)|<=10^6.Yêu cầu: Cho N và dãy a1, a2, a3, …, an; xóa phần tử x và xuất mảng sau khi xóa.
Bài 2. Cho dãy số nguyên N và dãy a1, a2, a3, …, an(0<=N<=10^6; i=0,1,2,…,N – 1; |a(i)|<=10^6.Yêu cầu: Cho N và dãy a1, a2, a3, …, an; xóa các phần tử trùng nhau chỉ giữ lại một phần tử và xuất mảng sau khi xóa.
Ai đó giúp mình 2 bài này theo pascal với được ko? Mình thật sự không biết làm :(( Ai đó giúp mình 2 bài này theo pascal với được ko? Mình xin cảm ơn nhiều!!
Bài 1:
uses crt;
var a:array[1..1000000]of longint;
i,n,x:longint;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
write('Nhap x='); readln(x);
for i:=1 to n do
if a[i]<>x then write(a[i]:4);
readln;
end.
Cho dãy số nguyên a gồm N phần tử. Đếm xem có bao nhiêu cặp (i, j) trong đó i < j và a[i] = a[j]
Input SpecificationDòng đầu là N số lượng phần tử của dãy. (0 < N <= 100000)
Dòng tiếp theo chứa n số nguyên là các phần tử của dãy số a (0< a.i <=1000)
Output SpecificationSố cặp (i,j) thỏa mãn yêu cầu.(Ngôn ngữ C++ nha)
#include <iostream>
#include <map>
using namespace std;
int main() {
int n;
cin >> n;
map<int, int> count;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
count[x]++;
}
int ans = 0;
for (auto p : count) {
int x = p.second;
ans += (x * (x - 1)) / 2;
}
cout << ans;
return 0;
}
Cho dãy số nguyên gồm N phần tử a 1 , a 2 , ..., a N .
(1 ≤ N ≤ 100, 0 ≤ a i ≤ 32767, 1 ≤ i ≤ N)
Yêu cầu: Hãy tìm số K, là số lượng lớn nhất các phần tử liên tiếp có giá trị bằng 0
trong dãy số trên.
Dữ liệu vào: Nhập số tự nhiên N và dãy số a 1 , a 2 , ..., a N từ bàn phím.
Dữ liệu ra: In ra màn hình số K tìm được.
Ví dụ: Nhập vào từ bàn phím N = 13, giá trị các phần tử của dãy số lần lượt là:
2 0 0 5 8 0 0 0 6 0 7 8 1
In ra màn hình kết quả K = 3
Thiết kế thuật toán cho nhiệm vụ 1 với ý tưởng khác như sau: Dãy A là một hoán vị của dãy các số từ 1 đến n khi và chỉ khi dãy A có độ dài n và mọi số i từ 1 đến n đều nằm trong A.
THAM KHẢO!
Một ý tưởng khác để kiểm tra xem dãy n số có phải là một hoán vị của dãy số 1, 2, ..., n hay không là sử dụng tính chất đặc biệt của hoán vị. Ta biết rằng một hoán vị của dãy số từ 1 đến n sẽ có các giá trị từ 1 đến n đúng một lần, tức là không có giá trị lặp lại và không có giá trị bỏ sót. Với ý tưởng này, ta có thể thiết kế thuật toán như sau:
-Đọc dãy số vào mảng a gồm n phần tử.
-Kiểm tra độ dài của dãy a có bằng n không. Nếu không bằng n, in ra "KHÔNG" và kết thúc thuật toán.
-Khởi tạo một mảng visited gồm n phần tử, với giá trị ban đầu là False. Mảng visited này sẽ được sử dụng để đánh dấu các số đã xuất hiện trong dãy a.
-Duyệt qua từng phần tử trong dãy a, đồng thời đánh dấu số đó đã xuất hiện trong dãy a bằng cách đặt giá trị True tại vị trí tương ứng trong mảng visited.
-Kiểm tra mảng visited. Nếu một trong các phần tử của visited là False, tức là có giá trị bị bỏ sót trong dãy a, in ra "KHÔNG" và kết thúc thuật toán.
-Sau khi kiểm tra xong mảng visited, in ra "CÓ" nếu không có giá trị nào bị bỏ sót, ngược lại in ra "KHÔNG".
-Thuật toán:
function kiemTraHoanVi(a):
n = len(a)
visited = [False] * n
# Kiểm tra độ dài của dãy a
if n != len(set(a)):
return "KHÔNG"
# Duyệt qua từng phần tử trong dãy a
for i in a:
# Nếu số i đã xuất hiện trong dãy a
if i < 1 or i > n or visited[i-1]:
return "KHÔNG"
visited[i-1] = True
# Kiểm tra mảng visited
if all(visited):
return "CÓ"
else:
return "KHÔNG"
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.
sao cho bước 4 i=N và kết thúc
Bước 1: Nhập n và nhập dãy số
Bước 2: t←0; i←1;
Bước 3: Nếu a[i]<0 thì t←t+a[i];
i←i+1;
Bước 4: Nếu i<=n thì quay lại bước 3
Bước 5: Xuất t
Bước 6: Kết thúc
B1 nhập n và dãy a1,a2....... an B2 i+1 D<- d+1 B3 nếu i > n thì đưa ra y và kết thúc
1. Tính tổng các số trong dãy số A = a1+a2+a3+..aN. Xác định input của bài toán
2. Cho N và dãy a1,a2,...aN. Trường hợp tìm thấy và đưa ra chỉ số i đầu tiên mà a i chia hết cho 3 thì với điều kiện nào thuật toán sẽ dừng?
A. i>N
B.ai chia hết cho 3
C. ai không chia hết cho 3
D. i<N
3. Thuật toán sau dùng để giải quyết bài toán nào?
B1: Nhập N, các số hạng a1,a2,a3,..aN
B2: Tong - 0, i - 1
B3. Nếu I>N thì đưa ra Tong rồi kết thúc
B4: Nếu i chia thì hết cho 2 thì Tong - Tong + Ai
B5: i - i+1
B6: quay lại B3
A. Tính tổng các số có vị trí chẵn
B. Tính tổng dãy số
C. Tính tổng các số dương trong dãy
D. Tính tổng các số chẵn trong dãy
4. Thuật toán sau dùng để giải quyết bài toán nào?
B1: Nhập giá trị hai số a,b
B2: c -a
B3: a - b
B4: b - c
B5: đưa ra giá trị mới của a và b rồi kết thúc
A. Hoán đổi giá trị 2 số a,b
B. Hoán đổi giá trị 3 số a,b,c
C. Tìm giá trị của a,b,c
D. Nhập giá trị của 3 số a,b,c
1:
#include <bits/stdc++.h>
using namespace std;
long long n,i,x;
int main()
{
cin>>n;
long long t=0;
for (i=1; i<=n; i++)
{
cin>>x;
t=t+x;
}
cout<<t;
return 0;
}
Xác định Input, output và viết thuật toán cho bài toán: Cho N và dãy số a1,a1,...,aN. Dãy số được gọi là đối xứng nếu ai = aN-i+1 với i = 1,...,N-1
Kiểm tra xem dãy đã cho có là dãy đối xứng hay không
input: Dãy số nguyên
Output: Kiểm tra xem dãy có đối xứng không
*Thuật toán
Bước 1: Nhập n và nhập dãy số
Bước 2: i←1; kt←true;
Bước 3: Nếu a[i]<>a[n-i+1] thì kt←false;
Bước 4: i←i+1;
Bước 5: Nếu i<=n thì quay lại bước 3
Bước 6: Nếu kt=true thì đây là dãy đối xứng và ngược lại
Bước 7: Kết thúc
Viết chương trình nhập dãy số a gồm n phần tử (3<=n<=120)
a)In ra màn hình số lớn thứ m(m nhập từ bàn phím và 1<=m<=n)
b)Chọn các số sao cho có tổng của chúng lớn nhất theo nguyên tắc không chọn 3 số liên tiếp nhau trong dãy .In ra màn hình tổng và vị trí các số đã chọn.
giúp mình vs viết trên pascal nhá!
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;
}