Cho dãy gồm N số tự nhiên a1,a2,a3...aN. viết chương trình in ra tổng các số âm,số dương của Dữ liệu vào cho bởi tệp DULIEU.INP có cấu trúc - dòng đầu tiên chứa số N - dòng thứ 2 chứa các số a1,a1,s3...aN các số cách nhau ít nhất 1 kí tự trống
cho dãy số gồm N số tự nhiên a1,a2,a3,...aN .Viết chương trình in ra trung bình cộng của các phần tử trên .Dữ liệu vào bởi tệp DULIEU.INP có cấu trúc : dòng đầu tiên chứa số nguyên N ,dòng thứ 2 chứa các số a1,a2,a3,...aN các số cách nhau ít nhất một kí tự trống
program du_lieu;
uses crt;
var i,n:integer;
a:array[1..100]of integer;
tbc:real;
f:text;
begin
clrscr;
assign(f,'DULIEU.INP');reset(f);
readln(f,n);
for i:=1 to n do
begin
read(f,a[i]);
end;
close(f);
for i:=1 to n do
tbc:=tbc+a[i];
writeln(tbc/n);
readln;
end.
tìm các số nguyên tố trong dãy số nguyên có n phấn tử a1, a2...an. dữ liệu vào đọc từ file nguyên tố.INP, gồm 2 dòng:
- dòng đầu chứa số nguyên dương n,n<= 250.
-dòng 2 chứa các phần tử của dãy số gồm a1, a2...an.
-dữ liệu ra ghi vào tệp nguyên tố .OUTP ,các phần tử là số nguyên tố nằm trên 1 dòng
giúp mình với ạ, mình cảm ơn!!
#include <bits/stdc++.h>
using namespace std;
long long a[1000],i,n,j;
bool kt;
int main()
{
freopen("nguyento.inp","r",stdin);
freopen("nguyento.out","w",stdout);
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
for (i=1; i<=n; i++)
if (a[i]>1)
{
kt=true;
for (j=2; j*j<=a[i]; j++)
if (a[i]%j==0) kt=false;
if (kt==true) cout<<a[i]<<" ";
}
return 0;
}
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
Viết chương trình đọc từ tệp đayso.inp sang dạy sỗ A1,A2,....AN rồi thực hiện in dãy ra màn hình
- Tệp dayso.inp có cấu trúc:
+ Dòng 1: là 1 số nguyên dương N
+ Dòng 2: gồm N số nguyên ngăn cách nhau bởi 1 đấu cách
mọi người ơi giúp e với.
uses crt;
const fi='dayso.inp',
var a:array[1..100]of integer;
i,n:integer;
f1:text;
begin
clrscr;
assign(f1,fi); reset(f1);
readln(f1,n);
for i:=1 to n do readln(f1,a[i]);
for i:=1 to n do write(a[i]:4);
close(f1);
readln;
end.
Cho tập số nguyên dương S={a1, a2, .., an} và một số nguyên K. Tìm một tập con Q có tổng nhỏ nhất sao cho tích các phần tử của Q chia hết cho K. Dữ liệu vào: + Dòng đầu tiên chứa hai số nguyên dương n, k (n < 105, k < 109) + Dòng thứ 2 chứa n số nguyên a1( d2,..., ữn(ữi 109) Dữ liệu ra: số nguyên dương X - tổng các số trong tập con cần tìm được
input:
5 24
3 2 4 2 8
output:
9
#include <iostream>
#include <vector>
using namespace std;
vector<int> primeFactors(int n) {
vector<int> factors;
for (int i = 2; i * i <= n; i++) {
while (n % i == 0) {
factors.push_back(i);
n /= i;
}
}
if (n > 1) factors.push_back(n);
return factors;
}
int main() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
vector<int> factors = primeFactors(k);
int sum = accumulate(a.begin(), a.end(), 0);
vector<vector<bool>> dp(n+1, vector<bool>(sum+1, false));
dp[0][0] = true;
for (int i = 1; i <= n; ++i) {
for (int j = 0; j <= sum; ++j) {
dp[i][j] = dp[i-1][j];
if (j >= a[i-1]) {
for (int factor : factors) {
if (a[i-1] % factor == 0) {
dp[i][j] = dp[i][j] || dp[i-1][j-a[i-1]];
break;
}
}
}
}
}
for (int j = 0; j <= sum; ++j) {
if (dp[n][j]) {
cout << j << endl;
break;
}
}
return 0;
}
Cho một dãy N số nguyên Ai gồm các số a1, a2, a3, ..., an. Yêu cầu: Cho biết số K, là số lượng phần tử có giá trị trái dấu luân phiên dài nhất từ 2 phần tử trở lên. Dữ liệu vào: Cho trong tệp văn bản AMDUONG.INP có cấu trúc: + Dòng 1: Ghi số N (0 < N <=600000) + Dòng 2: Ghi một dãy N số ai, mỗi số cách nhau một khoảng trống (0 <> | ai | < 100000) Dữ liệu ra: Kết quả đưa ra trong tệp AMDUONG.OUT theo cấu trúc sau: + Dòng 1: Ghi duy nhất một số nguyên K 0<=K<=N) + Dòng 2: Ghi các phần tử trái dấu luân phiên dài nhất đầu tiên tìm thấy. Nếu có nhiều dãy thõa mãn thì in ra dãy đầu tiên tìm thấy. Còn nếu không tìm được dãy nào thì ghi số 0.
Cho một dãy gồm n số nguyên dương A1,A2,…,An (N≤105,Ai≤109).
Hãy in số lớn nhất cùng chỉ số của nó, nếu có nhiều số lớn nhất thì in ra chỉ số của số đầu tiên gặp.
Input:
Dòng đầu chứa số n, dòng thứ hai chứa n số nguyên dương A1,A2,…,An
Output:
Dòng đầu chứa số có giá trị lớn nhất, dòng thứ hai chỉ số của nó.
Input
Copy
6
91 451 43 3 451 54
Output
Copy
451
2
Lưu ý: dùng C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
long a[105], i,n,max,vt;
cout<<"n="; cin>>n;
for (i=1; i<=n; i++)
{
cout<<"A["<<i<<"]="; cin>>a[i];
}
max=a[1];
for (i=1; i<=n; i++)
if (max<a[i]) max=a[i];
vt=1;
for (i=1; i<=n; i++)
if (max==a[i]) vt=i;
cout<<max<<endl;
cout<<vt;
return 0;
}
Cho một dãy gồm n số nguyên dương A1,A2,…,An (N≤105,Ai≤109).
Hãy in số lớn nhất cùng chỉ số của nó, nếu có nhiều số lớn nhất thì in ra chỉ số của số đầu tiên gặp.
Input:
Dòng đầu chứa số n, dòng thứ hai chứa n số nguyên dương A1,A2,…,An
Output:
Dòng đầu chứa số có giá trị lớn nhất, dòng thứ hai chỉ số của nó.
Input
Copy
6
Output
Copy
451
Lưu ý dùng : python
Bài. Hiển thị các phần tử dương trong dãy Cho dãy số nguyên gồm N phần tử a1, a2, …, aN Yêu cầu: Hiển thị các phần tử dương trong dãy. Dữ liệu vào: File văn bản DAYD.INP gồm + Dòng đầu ghi số N ; + Dòng thứ hai một dãy số nguyên a1, a2, …, aN (mỗi số cách nhau ít nhất một dấu cách). Dữ liệu ra: Ghi ra file văn bản DAYD.OUT + Một dãy các phần tử dương(Các phần tử cách nhau ít nhất một dấu cách).
#include <bits/stdc++.h>
using namespace std;
long long a[1000],n,i;
int main()
{
freopen("dayd.inp","r",stdin);
freopen("dayd.out","w",stdout);
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
for (i=1; i<=n; i++)
if (a[i]>0) cout<<a[i]<<" ";
return 0;
}