K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

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...
Đọc tiếp

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.

0
26 tháng 7 2023

#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;

}

26 tháng 7 2023

dùng mảng đc ko b?

 

BÀI 2. ĐỘ CAO CỦA DÃY SỐ DOCAO13.PASTa gọi độ cao của một số nguyên dương K là tổng giá trị các chữ số của K.Ví dụ: số 25362 có độ cao là 18. Cho dãy số nguyên dương A gồm N phần tử a 1 ,a 2 , ..., a N .(1 ≤ N ≤ 1000, 1 ≤ i ≤ N, 0 &lt; a i ≤ 2147483647)Yêu cầu: Hãy tính độ cao của các phần tử trong dãy số A.Dữ liệu vào: Ghi trong file văn bản DOCAO13.INP có cấu trúc như sau:- Dòng 1: Ghi số nguyên dương N, là số...
Đọc tiếp

BÀI 2. ĐỘ CAO CỦA DÃY SỐ DOCAO13.PAS
Ta gọi độ cao của một số nguyên dương K là tổng giá trị các chữ số của K.
Ví dụ: số 25362 có độ cao là 18. Cho dãy số nguyên dương A gồm N phần tử a 1 ,
a 2 , ..., a N .(1 ≤ N ≤ 1000, 1 ≤ i ≤ N, 0 &lt; a i ≤ 2147483647)
Yêu cầu: Hãy tính độ cao của các phần tử trong dãy số A.
Dữ liệu vào: Ghi trong file văn bản DOCAO13.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N, là số lượng phần tử của dãy số.
- Dòng 2: Ghi N số nguyên dương, số thứ i là giá trị của phần tử a i trong dãy số,
các số được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản DOCAO13.OUT theo cấu trúc như sau:
- Dòng 1: Ghi N số nguyên dương t 1 , t 2 , ..., t N, t i là độ cao của số của a i . Các số
được ghi cách nhau một dấu cách.
Ví dụ:

DOCAO13.INP DOCAO13.OUT
5 13 5 5 10 9

1

const fi='docao13.inp';

fo='docao13.out';

var f1,f2:text;

a:array[1..100]of integer;

i,n:integer;

//chuongtrinhcon

function kq(x:integer):integer;

var t,k:integer;

begin

t:=0;

while (x>0) do

begin

k:=x mod 10;

t:=t+k;

x:=x div 10;

end;

kq:=t;

end;

//chuongtrinhchinh

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n);

for i:=1 to n do 

read(f1,a[i]);

for i:=1 to n do

write(f2,kq(a[i]):4);

close(f1);

close(f2);

end.

uses crt;

var a:array[1..250]of integer;

i,n,dem,t,t1,t2,t3,t4:integer;

begin

clrscr;

repeat

write('Nhap n='); readln(n);

until (0<n) and (n<=250);

for i:=1 to n do 

  begin

repeat

write('A[',i,']='); readln(a[i]);

until (0<a[i]) and (a[i]<=500);

end;

dem:=0;

for i:=1 to n do 

  if a[i] mod 2=1 then inc(dem);

writeln('So phan tu co gia tri le la: ',dem);

t:=0;

for i:=1 to n do 

  if i mod 2=0 then t:=t+a[i];

writeln('Tong cac phan tu co chi so chan la: ',t);

t1:=0;

for i:=1 to n do 

  if i mod 2=1 then t1:=t1+a[i];

writeln('Tong cac phan tu co chi so le la: ',t1);

t2:=0;

for i:=1 to n do 

  if (i mod 2=0) and (a[i] mod 2=0) then t2:=t2+a[i];

writeln('Tong cac phan tu chan co chi so chan la: ',t2);

t3:=0;

for i:=1 to n do 

  if (i mod 2=1) and (a[i] mod 2=1) then t3:=t3+a[i];

writeln('Tong cac phan tu co chi so le la: ',t3);

t4:=0;

for i:=1 to n do 

  t4:=t4+a[i];

writeln('Trung binh cong cac so trong day la: ',t4/n:4:2);

readln;

end.

24 tháng 4 2023

Var a:array[1..100] of integer;

i,n:integer;

s:longint;

Begin

Write('n = ');readln(n);

For i:=1 to n do

Begin

Write('Nhap phan tu thu ',i,' = ');readln(a[i]);

s:=s+a[i];

End;

Write('Cac phan tu vua nhap la ');

For i:=1 to n do

Write(a[i]:8);

Writeln;

Write('Tong cua chung la ',s);

Readln

End.

SWAP XBạn được cho hai dãy số nguyên dương aa và bb gồm nn phần tử mỗi mảng. Bạn được phép thực hiện thao tác này nhiều lần:Chọn 1 số nguyên ii bất kỳ (1≤i≤n) và tráo đổi 2 phần tử a[i] và b[i].Yêu cầu: Tìm giá trị nhỏ nhất có thể của max(a1,a2,...,an)⋅max(b1,b2,...,bn)sau khi bạn thực hiện thao tác trên 1 hoặc nhiều lần.Dữ liệu:Dòng đầu ghi t thể hiện số testcase, t≤100.t block tiếp theo, mỗi block có...
Đọc tiếp

SWAP X
Bạn được cho hai dãy số nguyên dương aa và bb gồm nn phần tử mỗi mảng. Bạn được phép thực hiện thao tác này nhiều lần:

Chọn 1 số nguyên ii bất kỳ (1≤i≤n) và tráo đổi 2 phần tử a[i] và b[i].

Yêu cầu: Tìm giá trị nhỏ nhất có thể của max(a1,a2,...,an)⋅max(b1,b2,...,bn)sau khi bạn thực hiện thao tác trên 1 hoặc nhiều lần.

Dữ liệu:

Dòng đầu ghi t thể hiện số testcase, t≤100.

t block tiếp theo, mỗi block có dạng:

Dòng đầu ghi số nguyên dương n (n≤104).

Dòng thứ hai ghi nn số nguyên dương a1,a2,...,an (ai≤106)

Dòng thứ ba ghi nn số nguyên dương b1,b2,...,bn(bi≤106).

Kết quả:
Ứng với mỗi testcase, in ra kết quả cần tìm.
input
3
6
1 2 6 5 1 2
3 4 3 2 2 5
3
3 3 3
3 3 3
2
1 2
2 1
output
18
9
2

1
13 tháng 2 2022

Ý tưởng: Tìm số lớn nhất trong hai dãy đã cho. Không mất tính tổng quát, giả sử số lớn nhất của 2 dãy nằm trong dãy a, ta xét các số trong dãy b, tại vị trí i:  nếu a[i] < b[i] thì hoán vị a[i] và b[i]. Sau đó tìm số lớn nhất trong dãy b rồi nhân với số lớn nhất của hai dãy sẽ ra được kết quả. 

#include <iostream>

using namespace std;

#define maxN 105

 

int main() {

int a[maxN], b[maxN];

int t;

cin >> t;

while (t--)

{

int n;

cin >> n;

int maxA = 0, maxB = 0;

for (int i = 0; i < n; i++)

{

cin >> a[i]; maxA = max(a[i], maxA);

}

for (int i = 0; i < n; i++)

{

cin >> b[i]; maxB = max(b[i], maxB);

}

if (maxA < maxB) 

swap(a, b);

int maxV = max(maxA, maxB);

for (int i = 0; i < n; i++)

if (b[i] > a[i]) 

swap(b[i], a[i]);

maxB = 0;

for (int i = 0; i < n; i++)

maxB = max(b[i], maxB);

cout << maxB * maxV << endl;

}

return 0;

}