Cho tệp BANGDIEM.INP chứa dữ liệu như sau: Dòng đầu tiên có một số nguyên dương n (n = 8
Bài 1. Cho tệp văn bản input.txt gồm nhiều dòng. dòng đầu tiên ghi số nguyên dương N, N dòng tiếp theo, mỗi dòng ghi một số nguyên không lớn hơn 10000. a. Đọc dữ liệu từ tệp, đếm xem có bao nhiêu số dương chẵn. b. Đọc dữ liệu từ tệp, sắp xếp N số theo thứ tự tăng dần rồi ghi kết quả vào tệp output.txt. Ai biết làm giúp mk vớii
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;
}
Cho tệp văn bản có tên A.TXT lưu trữ dữ liệu của một mảng N số nguyên và có dạng sau: - Dòng đầu ghi số nguyên dương N (N< 100)
- Dòng 2 ghi N số nguyên, mỗi số cách nhau 1 dấu cách
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;
}
Viết chương trình C++ sử dụng các hàm và thủ tục xây dựng ở trên để giải bài toán:
Cho tệp dữ liệu TAMGIAC.DAT có cấu trúc như sau:
- Dòng đầu tiên chứa số N;
- N dòng tiếp theo, mỗi dòng chứa 6 số thực xA, yA, xB, yB, xC, yC là tọa độ 3 đỉnh A(xA, yA), B(xB, yB), C(xC, yC) của tam giác ABC
Hãy nhập dữ liệu từ tệpđã cho và trong số N tam giác đó, đưa ra tệp TAMGIAC.OUT gồm 3 dòng:
- Dòng đầu tiên là số lượng tam giác đều;
- Dòng thứ 2 là số lượng tam giác cân (nhưng không là đều);
- Dòng thứ 3 là số lượng tam giác vuông.
(Viet chuong trinh C++ chu khong phai Pascal a )
Viết chương trình sử dụng các hàm và thủ tục xây dựng ở trên để giải bài toán:
Cho tệp dữ liệu TAMGIAC.DAT có cấu trúc như sau:
- Dòng đầu tiên chứa số N;
- N dòng tiếp theo, mỗi dòng chứa 6 số thực xA, yA, xB, yB, xC, yC là tọa độ 3 đỉnh A(xA, yA), B(xB, yB), C(xC, yC) của tam giác ABC
Hãy nhập dữ liệu từ tệpđã cho và trong số N tam giác đó, đưa ra tệp TAMGIAC.OUT gồm 3 dòng:
- Dòng đầu tiên là số lượng tam giác đều;
- Dòng thứ 2 là số lượng tam giác cân (nhưng không là đều);
- Dòng thứ 3 là số lượng tam giác vuông.
const fi='tamgiac.dat'
fo='tamgiac.out'
var f1,f2:text;
a,b,c,d,e,f:array[1..100]of integer;
i,n,dem1,dem2,dem3:integer;
ab,bc,ac:real;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
readln(f1,a[i],b[i],c[i],d[i],e[i],f[i]);
dem1:=0;
dem2:=0;
dem3:=0;
for i:=1 to n do
begin
ab:=sqrt(sqr(a[i]-c[i])+sqr(b[i]-d[i]));
ac:=sqrt(sqr(a[i]-e[i])+sqr(b[i]-f[i]));
bc:=sqrt(sqr(c[i]-e[i])+sqr(d[i]-f[i]));
if (ab>0) and (ac>0) and (bc>0) and (ab+ac>bc) and (ab+bc>ac) and
(ac+bc>ab) then
begin
if (ab=ac) or (ac=bc) then inc(dem1);
if ((ab=ac) and (ab<>bc) and (ac<>bc)) then inc(dem2);
if ((ac=bc) and (bc<>ab) and (ac<>ab)) then inc(dem2);
if ((ac=bc) and (ac<>ab) and (bc<>ab)) then inc(dem2);
if sqr(ab)=sqr(ac)+sqr(bc) then inc(dem3);
if sqr(ac)=sqr(bc)+sqr(ab) then inc(dem3);
if sqr(bc)=sqr(ab)+sqr(ac) then inc(dem3);
end;
end;
writeln(f2,dem1);
writeln(f2,dem2);
writeln(f2,dem3);
close(f1);
close(f2);
end.
Viết chương trình tính tổng của n số nguyên có trong tệp Tong.inv. đưa giá trị tìm được ra tệp Tong.out. Dữ liệu vào gồm hai dòng dòng 1 ghi số nguyen dương n dòng 2 ghi n số nguyên dương dữ liệu ra một số nguyên duy nhất là tổng tìm được
const fi='tong.inp'
fo='tong.out'
var f1,f2:text;
a:array[1..100]of integer;
n,i,t:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
t:=0;
for i:=1 to n do
t:=t+a[i];
writeln(f2,t);
close(f1);
close(f2);
end.
Mn giúp mik bt Tin Học với ạ..! Mn lm đc bài nào thì làm nha ...!
Câu 1 (7,0 điểm): Số chính phương.
Cho trước số nguyên dương N (0< N≤ 106 ). Yêu cầu: Tìm số nguyên dương K nhỏ nhất sao cho tích của K và N là một số chính phương. Dữ liệu vào: File CP.INP chứa số N. Dữ liệu ra: File CP.OUT ghi số nguyên K tìm được.
Câu 2 (6,0 điểm): Dòng lớn nhất.
Cho một tệp tin gồm nhiều dòng. Trên mỗi dòng chứa một xâu kí tự chỉ gồm các kí tự chữ cái và chữ số, độ dài của mỗi xâu không quá 255 kí tự.
Yêu cầu: Đưa ra dòng có nhiều kí tự chữ cái nhất, nếu có nhiều dòng thỏa mãn thì đưa ra dòng đầu tiên có nhiều kí tự chữ cái nhất. Dữ liệu vào: File DLN.INP gồm:
+ Dòng đầu ghi số N là số lượng dòng chứa các xâu kí tự.
+ N dòng tiếp theo: mỗi dòng ghi một xâu kí tự. Dữ liệu ra: File DLN.OUT ghi ra dòng có nhiều kí tự chữ cái nhất, nếu có nhiều dòng thỏa mãn thì đưa ra dòng đầu tiên có nhiều kí tự chữ cái nhất.
Câu 3 (4,0 điểm): Dãy con đối xứng.
Một dãy số liên tiếp gọi là dãy đối xứng nếu đọc các số theo thứ tự từ trái sang phải cũng giống như khi đọc theo thứ tự từ phải sang trái. Cho dãy số A gồm N số nguyên dương: a1, a2,..., aN (1≤ N≤ 10000; 1≤ ai≤ 32000; 1≤ i≤ N)
Yêu cầu: Hãy tìm dãy con đối xứng dài nhất của dãy A. Nếu có nhiều dãy con thoả mãn thì lấy dãy con xuất hiện đầu tiên trong dãy A. Dữ liệu vào: File DX.INP gồm 2 dòng:
- Dòng 1: ghi số nguyên dương N.
- Dòng 2: ghi N số nguyên dương lần lượt là giá trị của các số trong dãy A, các số được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: File DX.OUT ghi dãy tìm được trên cùng một dòng, các số được ghi cách nhau một dấu cách.
Câu 4 (3,0 điểm): Dãy nguyên tố.
Cho một dãy số B gồm n số nguyên dương (n ≤ 1000), mỗi phần tử trong dãy có giá trị không quá 30000. Yêu cầu:
+ Tìm dãy con dài nhất (liên tiếp hoặc không liên tiếp) các phần tử là những số nguyên tố có giá trị tăng dần của dãy B và thứ tự của các phần tử không đổi so với ban đầu. Ví dụ: Dãy 8 phần tử {4, 2, 5, 6, 3, 3, 7, 9} có dãy con nguyên tố tăng dài nhất là {2, 5, 7}.
+ Nếu có nhiều dãy con thoả mãn thì lấy dãy con xuất hiện đầu tiên trong dãy B. Dữ liệu vào: File NT.INP gồm 2 dòng:
- Dòng 1: Ghi số nguyên dương n.
- Dòng 2: Ghi n số nguyên dương, các số được ghi cách nhau một dấu cách. Dữ liệu ra: File NT.OUT ghi dãy con tìm được trên cùng 1 dòng, giữa 2 phần tử liền kề trong dãy có một dấu cách.
Cho tệp SN3.INP chứa n số nguyên dương (mỗi số cách nhau một dấu cách trên một dòng). Viết chương trình đọc dữ liệu từ tệp đã cho Tính ƯCLN dãy các số nguyên dương đó và lưu kết quả vào tệp UC.OUT .
#include <bits/stdc++.h>
using namespace std;
unsigned long long a[1000],i,n,uc;
//chuongtrinhcon
unsigned long long ucln(long long a,long long b)
{
if (b==0) return(a);
else return(ucln(b,a%b));
}
//chuongtrinhchinh
int main()
{
freopen("sn3.inp","r",stdin);
freopen("uc.out","w",stdout);
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
uc=ucln(a[1],a[2]);
for (i=3; i<=n; i++)
uc=ucln(uc,a[i]);
cout<<uc;
return 0;
}