Cho dãy số M gồm n số nguyên (0<N<150)
+Sắp xếp dãy vừa nhập theo thứ tự tăng dần
+Tính tổng các số chẵn vừa nhập vào dãy
Giúp em với ạ
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 số nguyên dương N và dãy A gồm N số nguyên A1, A2, An và một số nguyên k. a) Đếm số lượng các số bằng 0 trong dãy A b) Đếm số lượng các số chẵn trong dãy A c) Tính tổng các số là bội của k trong dãy A d) Đếm số lượng các số bằng k trong dãy A
#include <bits/stdc++.h>
using namespace std;
long long x,i,n,nn;
int main()
{
cin>>n;
int dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x==0) dem++;
}
cout<<dem;
return 0;
}
Input:N nguyên dương ,dãy A gồm N số nguyên A1,A2,...An, số nguyên k
Output:- số lg các số bằng 0 trong dãy
- slg các số chẵn trong dãy
Tổng các số là bội của k trong dãy
- số lg các số các số bằng k tong dãy
+minh hoạ: N=8
....
Đếm số nguyên tố trong dãy:
Cho dãy gồm N (0<N< 10^6) số a1, a2, a3, ….,aN; (0<ai<10^9).
Hãy đếm số lượng các số nguyên tố có trong dãy số trên.
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int number) {
if (number < 2) {
return false;
}
for (int i = 2; i <= sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
int main() {
int N;
cin >> N;
int count = 0;
for (int i = 0; i < N; i++) {
int num;
cin >> num;
if (isPrime(num)) {
count++;
}
}
cout << "Số lượng số nguyên tố trong dãy là: " << count << endl;
return 0;
}
Sắp xếp dãy số Tên chương trình: sorting.pas
Cho dãy N số nguyên a1, a2,..., an. Hãy sắp dãy số đã cho theo thứ tự tăng dần các số lẻ
và giảm dần các số chẵn?
Dữ liệu vào: File sorting.inp gồm hai dòng
+ Dòng 1: ghi số nguyên N (0< N<1000)
+ Dòng 2: ghi N số a1, a2,...< aN (với ai <=109
)
Dữ liệu ra: File sorting.out gồm hai dòng
+ Dòng 1: Ghi các số lẻ tăng dần
+ Dòng 2: ghi các số chẵn giảm dần
Ví dụ:
Sorting.inp Sorting.out
6
2 3 5 1 4 6
1 3 5
6 4 2
Dưới đây là mã chương trình Pascal để sắp xếp dãy số theo yêu cầu đã cho:
```pascal
program sorting;
const
MAX_N = 1000;
var
N, i, j, temp: integer;
arr: array[1…MAX_N] of integer;
oddArr, evenArr: array[1…MAX_N] of integer;
oddCount, evenCount: integer;
inputFile, outputFile: text;
begin
// Mở file input và đọc dữ liệu
assign(inputFile, 'sorting.inp');
reset(inputFile);
readln(inputFile, N);
for i := 1 to N do
read(inputFile, arr[i]);
close(inputFile);
// Sắp xếp mảng theo yêu cầu
oddCount := 0;
evenCount := 0;
for i := 1 to N do
begin
if arr[i] mod 2 = 1 then
begin
oddCount := oddCount + 1;
oddArr[oddCount] := arr[i];
end
else
begin
evenCount := evenCount + 1;
evenArr[evenCount] := arr[i];
end;
end;
// Sắp xếp mảng số lẻ tăng dần
for i := 1 to oddCount - 1 do
for j := i + 1 to oddCount do
if oddArr[i] > oddArr[j] then
begin
temp := oddArr[i];
oddArr[i] := oddArr[j];
oddArr[j] := temp;
end;
// Sắp xếp mảng số chẵn giảm dần
for i := 1 to evenCount - 1 do
for j := i + 1 to evenCount do
if evenArr[i] < evenArr[j] then
begin
temp := evenArr[i];
evenArr[i] := evenArr[j];
evenArr[j] := temp;
end;
// Mở file output và ghi kết quả
assign(outputFile, 'sorting.out');
rewrite(outputFile);
for i := 1 to oddCount do
write(outputFile, oddArr[i], ' ');
writeln(outputFile);
for i := 1 to evenCount do
write(outputFile, evenArr[i], ' ');
close(outputFile);
end.
```
Bạn có thể sao chép mã chương trình trên vào một tệp tin có tên `sorting.pas`, sau đó tạo một tệp tin `sorting.inp` và nhập dữ liệu theo định dạng đã cho. Chạy chương trình và kết quả sẽ được ghi vào tệp tin `sorting.out`.
var i,n:longint; a:array[1..1000] of longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do
if a[i] mod 2=0 then
begin
inc(k);
b[k]:=a[i];
end
else
begin
inc(t);
c[t]:=a[i];
end;
for i:=1 to k-1 do
for j:=i+1 to k do
if b[i]<b[j] then
begin
d:=b[i];
b[i]:=b[j];
b[j]:=d;
end;
for i:=1 to t-1 do
for j:=i+1 to t do
if c[i]>c[j] then
begin
d:=c[i];
c[i]:=c[j];
c[j]:=d;
end;
for i:=1 to k do write(b[i],' ');
for i:=1 to t do write(c[i],' ');
end.
Giá Trị MEX
Cho hai số nguyên n và m. Tìm MEX của dãy số n ⊕ 0,n ⊕ 1,…,n ⊕ m. Đây, ⊕ là phép XOR.
MEX của một dãy số nguyên không âm là số nguyên không âm nhỏ nhất không xuất hiện trong dãy. Ví dụ, MEX(0, 1, 2, 4) = 3 và MEX(1,2021)=0.
1 ≤ N ≤ 10**9
1 ≤ N ≤ 10**9
Độ phức tạp lớn nhất O(log(10 ** 9))
Cho dãy A gồm N số nguyên A1, A2,..AN . Hãy tìm thuật toán cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x==0) dem++;
}
cout<<dem;
return 0;
}
cho dãy A gồm N sô nguyên: a1, a2,...., an. hãy cho biết có bao nhiêu số hạng trong dãy có giá trị khác 0
#include <bits/stdc++.h>
using namespace std;
long long i,n,x,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x!=0) dem++;
}
cout<<dem;
return 0;
}
Viết chương trình nhập một dãy gồm N (0<N≤1000)số nguyên a1,a2,a3,...aN và một số nguyên B . Đếm số lần xuất hiện của số nguyên N trong dãy số đã nhập
Dữ liệu vào:Nhập từ bàn phím
-Dòng đầu đọc số nguyên N
-Dòng thứ hai là các số của dãy cách nhau một khoảng trắng theo thứ tự a1,a2,a3,..aN
-Dòng thứ ba nhập số nguyên B
-kết quả ra:Xuất ra màn hình:Tổng số lần xuất hiện của B
Ví dụ :
Dữ liệu vào:9,2,4,3,1,5,4,1,1,9,1
Kết quả:3
a.Đếm phần tử xuất hiện nhiều nhất và số lần xuất hiện của nó trong mảng ?
b.Xếp lại dãy đó theo thứ tự tăng dần.Chèn số nguyên X vào dãy sao cho dãy vẫn giữ được thứ tự tăng dần(không được sắp xếp lại )
c.Tìm số nguyên Y và xoá số Y trong mảng trên (giúp em với ạ)
Help me ( ngôn ngữ lập trình c++)
Câu 1. Tính số fibonaci thứ N. biết f(1)= 1; f(2) = 1; f(N)=f(N-2)+F(N-1) Câu 7: Cho dãy a gồm m số nguyên (|ai| <=10), dãy b gồm n số nguyên (bị <=10). 2 dãy này đã được sắp xếp không giảm. Hãy in ra một dãy c có các phần tử gồm 2 dãy số trên cũng được sắp xếp không giảm.
Câu 2. Cho dãy số gồm có N phần tử. Hãy đổi vị trí của phần tử lớn nhất và nhỏ nhất cho nhau. Nếu có nhiều phần tử lớn nhất và nhỏ nhất thì đổi chỗ phần tử lớn nhất có vị trí lớn nhất cho phần tử nhỏ nhất có vị trí nhỏ nhất chonhau.
2:
#include <bits/stdc++.h>
using namespace std;
int A[100],ln,nn,vt1,vt2,n;
int main()
{
cin>>n;
for(int i=1; i<=n; i++) cin>>A[i];
ln=A[1];
for (int i=1; i<=n; i++)
ln=max(ln,A[i]);
nn=A[1];
for (int i=1; i<=n; i++)
nn=min(nn,A[i]);
vt1=1; vt2=n;
for (int i=1; i<=n; i++)
if (ln==A[i] && vt1<=i) vt1=i;
for (int i=n; i>=1; i--)
if (nn==A[i] && vt2>=i) vt2=i;
swap(A[vt1],A[vt2]);
for (int i=1; i<=n; i++)
cout<<A[i]<<" ";
}