1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập ngôn ngữ lập trình C++ (có lời giải)

26 1,9K 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 35,32 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thuật toánLập trình cơ bản Câu 1: CẶP SỐ NGUYÊN TỐ ĐẦU TIÊN CÓ TỔNG BẰNG N Cho số tự nhiên N.. Input:  Dòng đầu tiên đưa vào số lượng bộ test T.. Mỗi bộ test gồm là một số N được ghi tr

Trang 1

Thuật toán

Lập trình cơ bản

Câu 1: CẶP SỐ NGUYÊN TỐ ĐẦU TIÊN CÓ TỔNG BẰNG N

Cho số tự nhiên N Hãy tìm cặp số nguyên tố đầu tiên có tổng là N Nếu không tồn tạicặp số nguyên tố có tổng bằng N, hãy đưa ra -1

Input:

 Dòng đầu tiên đưa vào số lượng bộ test T

 Những dòng kế tiếp đưa vào các bộ test Mỗi bộ test gồm là một số N được ghi trên một dòng

Trang 2

cout <<"-1\n";

}}}

Câu 2: SỐ NGUYÊN TỐ

Viết chương trình kiểm tra một số nguyên dương có phải số nguyên tố hay không.

Dòng đầu của dữ liệu vào ghi số bộ test Mỗi dòng tiếp theo có một nguyên dươngkhông quá 9 chữ số Kết quả in ra YES nếu đó là số nguyên tố, in ra NO nếu ngược lại

Trang 3

cout <<"NO"<<"\n";

}}}

Câu 3: BỘI SỐ CHUNG - ƯỚC SỐ CHUNG

Trang 4

Tìm bội số chung nhỏ nhất và ước số chung lớn nhất của hai số nguyên dương a, b.

Input:

 Dòng đầu tiên đưa vào T là số lượng bộ test

 T dòng tiếp theo mỗi dòng có một cặp số a, b

 T, a, b thỏa mãn ràng buộc: 1≤T≤100; 1≤a, b≤108;

Trang 5

b -= a;

}}

cout << bc/a << " " << a <<"\n";

}

}

Câu 4: ƯỚC SỐ NGUYÊN TỐ LỚN NHẤT

Cho số nguyên dương N Hãy đưa ra ước số nguyên tố lớn nhất của N

Input:

 Dòng đầu tiên đưa vào số lượng bộ test T

 Những dòng kế tiếp đưa vào T bộ test Mỗi bộ test ghi số nguyên dương N

Trang 6

else cout << res << endl;

}return 0;

}

Câu 5: TÌM KIẾM NHỊ PHÂN

Cho dãy số A[] gồm có N phần tử đã được sắp xếp tăng dần và số K

Nhiệm vụ của bạn là kiểm tra xem số K có xuất hiện trong dãy số hay không Nếu có hãy in ra vị trí trong dãy A[], nếu không in ra “NO”

Input:

Dòng đầu tiên là số lượng bộ test T (T ≤ 10)

Mỗi test bắt đầu bằng số nguyên N và K (N ≤ 100 000, 0 ≤ K ≤ 106)

Dòng tiếp theo gồm N số nguyên A[i] (0 ≤ A[i] ≤ 106), các phần tử là riêng biệt

Output:

Với mỗi test in ra trên một dòng đáp án tìm được

Ví dụ:

Trang 7

int a[n];

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

cin >> a[i];

}if(vitri(a,n,k) == 0){

Trang 8

cout << "NO" << endl;

}else {

cout << vitri(a,n,k) << endl;

}}

Kết quả: Ghi ra màn hình từng bước thực hiện thuật toán Mỗi bước trên một dòng,

các số trong dãy cách nhau đúng một khoảng trống

Trang 9

cout << "Buoc " << t <<": ";t++;

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

cout << a[i] <<" ";}

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

cout << a[i] <<" ";}

cout <<"\n";

}

Trang 10

Kết quả: Ghi ra màn hình từng bước thực hiện thuật toán Mỗi bước trên một dòng,

các số trong dãy cách nhau đúng một khoảng trống

Trang 11

if(ok==0) break;

cout <<"Buoc "<< i+1 <<": ";

for(int k=0;k<n;k++) cout << a[k] <<" ";

Dữ liệu vào: Dòng đầu tiên ghi số bộ test Mỗi bộ test viết trên một dòng số nguyên

dương tương ứng cần kiểm tra

Kết quả: Mỗi bộ test viết ra YES hoặc NO, tương ứng với bộ dữ liệu vào

Code:

#include<iostream>

Trang 12

cout <<"NO"<<"\n";}

}

}

Câu 9: Số thuần nguyên tố

Trang 13

Một số được coi là thuần nguyên tố nếu nó là số nguyên tố, tất cả các chữ số là nguyên

tố và tổng chữ số của nó cũng là một số nguyên tố Bài toán đặt ra là đếm xem trongmột đoạn giữa hai số nguyên cho trước có bao nhiêu số thuần nguyên tố

Dữ liệu vào: Dòng đầu tiên ghi số bộ test Mỗi bộ test viết trên một dòng hai số

nguyên dương tương ứng, cách nhau một khoảng trống Các số đều không vượt quá 9 chữ số

Kết quả: Mỗi bộ test viết ra số lượng các số thuần nguyên tố tương ứng.

}

}

int chusont(long long n){

while (n > 0){

Trang 15

Dòng đầu tiên là số lượng bộ test T (T ≤ 10)

Mỗi test gồm số nguyên N (1≤ N ≤ 100 000), số lượng phần tử trong dãy số ban đầu

Code:

#include<iostream>

using namespace std;

int main(){

Trang 16

int ans = 0;

for(int i = 1; i <=n; i++)ans ^= a[i];

cout << ans << endl;

Dòng đầu tiên là số lượng bộ test T (T ≤ 20)

Mỗi test gồm số nguyên N (1≤ N ≤5000)

Dòng tiếp theo gồm N số nguyên A[i] (1 ≤ A[i] ≤ 10^9)

Trang 17

if (a[l] + a[r] == a[i]) return true;

if(a[l] + a[r] < a[i]) l++;

Trang 18

cin >> n;

for(i=0;i<n;i++) cin >> a[i];

if(check(a, n)) cout << "YES" << endl;

else cout << "NO" << endl;

Trang 19

 Dòng đầu ghi số bộ test, không quá 10

 Mỗi dòng ghi một số nguyên dương N, không quá 109

Kết quả:

Với mỗi test, ghi kết quả trên một dòng

Trang 21

Câu 16: Ước số chung lớn nhất

Viết chương trình tính ước số chung lớn nhất của 2 số nguyên dương (không quá 6 chữsố)

Trang 22

b -= a;

}}

Trang 23

Dữ liệu vào chỉ có một dòng ghi số n không

Câu 18: Làm tròn số

Cho số nguyên dương không quá 9 chữ số Hãy làm tròn số N theo quy tắc sau:

 Nếu N>10, làm tròn đến số hàng chục gần nhất

 Sau đó nếu kết quả lớn hơn 100 thì làm tròn đến số hàng trăm gần nhất

 Sau đó nếu kết quả lớn hơn 1000 thì làm trong đến số hàng nghìn gần nhất

 Cứ tiếp tục như vậy …

Chú ý: Giá trị 5 sẽ được làm tròn lên

Input

Dòng đầu ghi số bộ test (không quá 100)

Mỗi bộ test ghi số N trên một dòng (N nguyên dương và không quá 9 chữ số)

Output

Với mỗi test, ghi ra kết quả làm tròn tương ứng trên một dòng

Trang 25

Câu 19: Ước số chia hết cho 2

Cho số nguyên dương N

Nhiệm vụ của bạn là hãy xác định xem có bao nhiêu ước số của N chia hết cho 2?

Input:

Dòng đầu tiên là số lượng bộ test T (T ≤ 100)

Mỗi bộ test gồm một số nguyên N (1 ≤ N ≤ 109)

Trang 26

int dem = 1;

if(n%2==1){

return 0;

}else {for(int i = 2; i <= sqrt(n); i++){

return dem ;}

Ngày đăng: 14/12/2021, 18:33

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w