Tải bản đầy đủ (.pdf) (59 trang)

50 bài tập NHẬP môn kỹ THUẬT lập TRÌNH c++ căn bản NHÂT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.08 MB, 59 trang )

50 BÀI TẬP NHẬP MÔN KỸ THUẬT LẬP TRÌNH C++ CĂN BẢN NHÂT

-Nguyễn Xuân Bình----------------------------------------------------------------------------------------------------------------------------------------Note:
Nói 50 bài thực tế là 53 bài . Vì có 3 bài hơi khó nên các bạn tham khảo nhé !
Mình học không giỏi đâu nha các bạn mình chỉ là mình học mình viết thấy có ích
nên tổng hợp thành tài liệu này . Do mình mới năm nhất nên viết theo cách nhập
môn các bạn mới làm quen C++ sẽ rất dễ hiểu . Do lần đầu nên sẽ có thiếu sót mong
nhận được sự góp ý chân thành từ các đồng chí và các bạn ! Và các bạn đừng sao
chép ra nhé vì đó là công sức của mình mong các bạn hiểu cho . Thanks all !
Đây là liên hệ của mình :
Link facebook : />Email :

-----------------------------------------------------------------------------------------------------------------------------------------

MÌNH BẮT ĐẦU NHÉ GOODLUCK
-----------------------------------------------------------------------------------------------------------------------------------------


Nhập vào 2 số nguyên a và b.
yêu cầu xuất ra tổng của 2 số a và b
ví dụ:
Input: 2
Output: 5

3

#include<iostream>
using namespace std;
int main()
{
int a,b; cin>>a>>b;cout<


}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 1 số.
Kiểm tra số đó có phải là số chính phương không?
Xuất: yes, nếu đó là số chính phương, ngược lại xuất no
ví dụ:
input: 4
output: yes

#include<bits/stdc++.h>
using namespace std;
int kiemtra(int n)
{
for (int i = 0; i < n; i++)
if (n == i*i)
return true;
return false;
}
int main()
{


int n;
cin >> n;
if (kiemtra(n)== true )
cout << "yes";
else cout << "no";
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 1 số.
Kiểm tra số đó có phải là số nguyên tố không?

Xuất: true, nếu đó là số nguyên tố, ngược lại xuất false
ví dụ:
input: 4
output: false

#include<bits/stdc++.h>
using namespace std;
int ktsnt(int n)
{
if(n<2)
return 0;
for(int i =2; iif(n%i==0)
return 0;
return 1;
}
int main()
{
int n;cin>>n;
if(ktsnt(n)==1)


cout<<"true";
else cout<<"false";
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 1 dãy số, yêu cầu tính tổng các chữ số của dãy đó.
ví dụ:
input:
1

12
23
output:
1
3
5

#include<iostream>
using namespace std;
int dequytinhtongcacchuso(int n)
{
if (n < 10)
return n;
return dequytinhtongcacchuso(n / 10) + dequytinhtongcacchuso(n % 10);
}
int main()
{
int n;
while (cin >> n)
{
cout << dequytinhtongcacchuso(n) << endl;
}
return 0;
}


----------------------------------------------------------------------------------------------------------------------------------------̉ng chư
́ nguyên N va
̀ u ti
́ cuô

́i cu
̃ sô
̉a
̀ o 2 sô
̀ M, yêu câ
̀ ng cu
́nh tô
Nhâ
̣p va
(0<= N,M <=12345670)

̉a M.
̀ cu
N va

́ du
vi
̣:
input:
123
456
output
9

#include<iostream>
using namespace std;
int main()
{
int n, m;
cin >> n;

cin >> m;
cout << n % 10 + m % 10;
return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------------

nhập vào 2 số nguyên và 1 phép toán. Yêu cầu thực hiện phép
toán (là 1 trong 4 phép toán: +,-,*,%)
Input:
- Dòng 1: nhập vào 2 số nguyên A, B
- Dòng 2: Nhập vào 1 phép toán
Output:
-Biểu thức thực hiện phép toán.

Ví dụ:


Input:
1 2
+
Output:
1+2=3
#include<iostream>
using namespace std;
int main()
{
int a, b;
char c;
cin >> a >> b;
cin >> c;

if (c == '+')
cout << a << "+" << b << "=" << a + b;
if (c == '-')
cout << a << "-" << b << "=" << a - b; if (c == '*')
cout << a << "*" << b << "=" << a * b; if (c == '%')
cout << a << "%" << b << "=" << a % b;
return 0;

}
----------------------------------------------------------------------------------------------------------------------------------------Số tự nhiên N được gọi là số đẹp nếu tổng các chữ số của N tận cùng bằng 9. Ví dụ một số số
đẹp là 18 (1+8=9), 234 (2+3+4=9), 658 (6+5+8=19). Cho một số N, hãy kiểm tra xem N có
phải là số đẹp hay không.
Dữ liệu nhập:
- Là số nguyên N (0 ≤ n ≤ 109)
Dữ liệu xuất:
- Nếu N là số đẹp, in ra "TRUE", nếu không in ra "FALSE"


Ví dụ
input: 27 --> output: TRUE
input: 2727 --> output: FALSE
input: 888333777 --> output: FALSE

#include<iostream>
using namespace std;
int dequytongcacchuso(int n)
{
if(n<10)
return n;
return dequytongcacchuso(n/10)+dequytongcacchuso(n%10);

}
int main()
{
int n,binh;
while(cin>>n)
{
binh =dequytongcacchuso( n)%10;
if(binh == 9)
cout<<"TRUE";
else
cout<<"FALSE";
}
return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------------

1.
2.
3.

Viết một chương trình đê
̣ quy tính tổng các chữ số của số
N cho trước
Ví dụ:
Input: 123


4.

Ouput: 6 (vì : 1+2+3 =6)

#include<iostream>
using namespace std;
int dequytongcacchuso(int n)
{
if(n<10)
return n;
return dequytongcacchuso(n/10)+dequytongcacchuso(n%10);
}
int main()
{
int n;
while(cin>>n)
{
cout<}
return 0;
}
́ nguyên a va
̀ o 2 sô
̀ b.
Nhâ
̣p va
̀
́ đo
̉
́.
̀ m UCLN cua 2 sô
Yêu câu ti
́ du
vi

̣
input:
10 8
output
2

#include<iostream>
using namespace std;
int ucln(int a, int b)
{
int c;


if(a>b)
return c= a-b; // hinh nhu bai nay co van de cac ban chu y nhe
else
return c = b-a;
}
int main()
{ int a; int b;
while(cin>>a>>b);
{
cout<}
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------́ nguyên, yêu câ
̀ u ti
̀ n tư
́t trong ma

̉ lơ
́n nhâ
̉ng
̀ o 1 da
̃y sô
̀ m phâ
Nhâ
̣p va
́ du
vi
̣:
input:
1 2 3 4 5
output:
5

#include<bits/stdc++.h>
using namespace std;
int main()
{
int *a, n;
a = new int[1000000];
for (int i = 0; i{
cin >> a[i];
}


int max =a[0];
for (int j = 0; j< n; j++)

if (a[j]> max)
max = a[j];
cout<return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------́ a va
̀ u xuâ
́t ra bô
́t cu
́ đo
̉ nhâ
̉a 2 sô
̀ o 2 sô
̀ b, yêu câ
́.
Nhâ
̣p va
̣i chung nho
́ du
vi
̣:
input:
2 3
output
6

#include<bits/stdc++.h>
using namespace std;
int UCLN(int a, int b)
{

while ( a != b)
{
if (a > b)
a = a - b;
else
b = b - a;
}

return a;
}
int BCNN(int a, int b)
{


int result = UCLN(a, b);
return a * b / result;
}
int main()
{
int a; int b;
while( cin>>a>>b)
{
cout<}
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Cho N (nguyên dương). Kiểm tra N có phải số nguyên tố không?
́u N không pha
́ nguyên tô
́ xuâ

́t 0 - ngươ
́t N
̉i la
̀ sô

̣c la
̣i xuâ
́ du
Vi
̣ 1:
input:
3
output
3
́ du
vi
̣ 2:
input:
4
output
0

#include<bits/stdc++.h>
using namespace std;
int ktsnt(int n)
{
if(n<2)
return 0;
for(int i =2; i


if(n%i==0)
return 0;
return 1;
}
int main()
{
int n;cin>>n;
if(ktsnt(n)==1)
cout<else cout<<"0";
return 0;
}
Nhập vào số n.

----------------------------------------------------------------------------------------------------------------------------------------Xuất tổng từ 1 đến n
#include<iostream>

using namespace std;
int tong(int n)
{
if (n == 1)
return 1;
return n + tong(n - 1);
}
int main()
{
int n;
cin >> n;
cout << tong(n);

return 0;


}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào số n.
Xuất tổng các số lẻ từ 1 đến n
#include<bits/stdc++.h>

using namespace std;
int tinhtong(int n)
{
if (n == 1)
return 1;
else
return n + tinhtong(n - 2);

}
int main()
{
int n;
cin >> n;
cout << tinhtong(n);
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------input:

- Nhập vào 1 số nguyên n
output:

- Nếu n là chẵn xuất "chan" ngược lại xuất "le"

ví dụ
input:
3
output:
le


#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if(n%2==0)
cout<<"chan";
else
cout<<"le";
return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------------

Input:
- Dòng 1: số n và số x cần tìm trong dãy số
- Dòng 2: Nhập vào một dãy số nguyên
Output:
- Nếu tìm thấy xuất ra vị trí tìm thấy đầu tiên
- Ngược lại nếu không tìm thấy xuất -1
(lưu ý: chỉ số của dãy số được tính từ 0)

ví dụ:

input:
53
21357
output:
2
input:
5 10
2 1 3 5 7
output:
-1


#include<iostream>
using namespace std;
#define max 1000
void input(int a[max], int &n, int &x)
{
cin >> n;
cin >> x;
for (int i = 0; i{
cin >> a[i];
}
}
int search(int a[max], int &n, int &x)
{
for (int i = 0; i{
if (a[i] == x)
return i;

}
return -1;
}
int main()
{
int a[max], n, x;
input(a, n,x);
cout<return 0;

}


----------------------------------------------------------------------------------------------------------------------------------------Viết chương trình tìm kiếm phần tử trong mảng
Input:
- Dòng 1: số n và số x cần tìm trong dãy số
- Dòng 2: Nhập vào một dãy số nguyên (đã được sắp xếp tăng dần)
Output:
- Nếu tìm thấy xuất ra vị trí tìm thấy đầu tiên
- Ngược lại nếu không tìm thấy xuất -1
(lưu ý: chỉ số của dãy số được tính từ 0)
ví dụ:
input:
5 3
1 2 3 4 5
output:
2
input:
5 10
1 2 3 4 5

output:
-1
#include<iostream>

using namespace std;
#define max 1000
void nhap(int a[max], int &n, int &x)
{
cin >> n;
cin >> x;
for (int i = 0; i{
cin >> a[i];
}
}


int LinearSearch(int a[max], int n, int x)
{
int i = 0;
while ((i < n) && (a[i] != x))
i++;
if (i == n)
return -1;
}
int main()
{
int a[max], n, x;
nhap(a, n,x);
cout<

return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Viết chương trình xuất ra 2 dòng chữ:
XIN CHAO MUNG
DEN VOI C++
#include<iostream>
using namespace std;
int main()
{
cout<<"XIN CHAO MUNG\nDEN VOI C++";
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Viết chương trình nhập vào 2 số nguyên a,b, yêu cầu xuất ra tổng 2 số nguyên đó
theo định dạng
a+b = tổng.
ví dụ:
input:
2 3
output
2+3=5


#include<iostream>
using namespace std;
int main()
{
int a, b, s;
cin >> a >> b;
s = a + b;
cout << a<<"+"<

return 0;
}
Yêu cầu xuất ra màn hình các dãy số như sau:
1
12
123
1234
12345
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<"1\n12\n123\n1234\n12345"<return 0;
}
Nhập vào 2 số a và b
Yêu cầu hoán vị giá trị của a và b, sau đó xuất kết quả ra màn hình
ví dụ:
input:
2 3
output
3 2
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<return 0;

}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 2 số nguyên a và b.
Yêu cầu xuất ra theo dịnh phân số: a/b
ví dụ
input:


2 3
output:
2/3
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Nhap vào mot sô x, xác định sô x là sô dương, hay sô âm hoac bang 0 ?

Input:
- 1 số nguyên X
Output:
- Nếu X là số dương xuất kết quả: DUONG
- Nếu X là số âm xuất kết quả: AM
- Nếu X là số 0 xuất kết quả: KHONG
Ví dụ:
input:
3

output
DUONG
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if(n<0)
cout<<"AM";
if(n>0)
cout<<"DUONG";
if(n==0) cout<<"KHONG";
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Nhap vào 2 sô nguyên a,b. Xuất sô lớn nhât
ví dụ:


input
2 3
output
3
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
int max = a;

if (b>a)
max = b;
else max = max;
cout << max;
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 3 sô nguyên a,b,c. Tìm sô lớn nhât và sô nh‰ỏ nhất trong 3 sô đó.
Ví dụ:
input
1 2 3
outpt:
3 1
#include<iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
int max = a;
if (b>a)
max = b;
if (c>a)
max = c;
else max = max;
cout << max;
int min = a;
if (b < a)
min = b;
if (c < a)
min = c;

else min = min;
cout << min;
return 0;


}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 1 số gồm 2 chữ số, yêu cầu xuất ra tổng chữ số của nó ra màn hình
ví dụ:
input:
23
output
5
#include<iostream>
using namespace std;
int dequy(int n)
{
if(n<10)
return n;
return dequy(n/10)+dequy(n%10);
}
int main()
{
int n;
cin>>n;
cout<return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 1 số gồm 3 chữ số, yêu cầu xuất số đó theo thứ tự ngược lại
ví dụ
input

123
output
321
#include <iostream>
using namespace std;
// Hãy tìm số đảo ngược của số nguyên dương n
int Tim_SoDaoNguoc(int N)
{
int sodaoNguoc = 0;
while (N > 0)
{
int t = N % 10;
sodaoNguoc = sodaoNguoc * 10 + t;
N = N / 10;
}
return sodaoNguoc;
}


int main()
{
int N;
cin >> N;
int sodaonguoc = Tim_SoDaoNguoc(N);
cout << sodaonguoc << endl;
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 1 số nguyên n, yêu cầu xuất tất cả số nguyên tố từ 1 đến n (mỗi số cách
1 khoảng trắng) - nếu không có số nào, xuất -1


ví dụ:
input:
5
output
2 3 5
#include<iostream>
using namespace std;
int ktsnt(int &n)
{
if (n<2)
return 0;
for (int i = 2; i <= n / 2; i++)
if (n%i == 0)
return 0;
return 1;
}
int main()
{
int n;
cin >> n;
if (n < 2)
cout << -1;
for (int i = 0; i < n + 1; i++)
{
if (ktsnt(i)) cout << i << " ";
}
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Nhập vào 1 số nguyên n, xuất ra n!
ví dụ:



input:
3
output:
6
#include<bits/stdc++.h>
using namespace std;
int giaithua(int n)
{
if((n==0)||(n==1))
return 1;
return n*giaithua(n-1);
}
int main()
{
int n;
while(cin>>n)
{
cout<}
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Input:

- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Ouput:

Yêu cầu xuất tổng các phần tử đó ra màn hình

ví dụ:
input:

3
1 2 3
output

6
#include<iostream>
using namespace std;
#define max 1000
void nhap(int a[max], int &n)
{
cin >> n;
for (int i = 0; i

{
cin >> a[i];
}
}
long int S(int a[max], int &n) {
long int temp = 0;
for (int i = 0; itemp += a[i];
return temp;
}
int main()
{
int a[max], n;

nhap(a, n);
cout << S(a, n);
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Input:

- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Ouput:

Yêu cầu xuất tổng các số chẵn trong mảng ra màn hình
ví dụ:
input:

4
1 2 3 4
#include<iostream>
using namespace std;
#define max 1000
void nhap(int a[max], int &n)


{
cin >> n;
for (int i = 0; i{
cin >> a[i];
}
}
long int S(int a[max], int &n) {

long int temp = 0;
for (int i = 0; iif(a[i]%2==0)
temp += a[i];
return temp;
}
int main()
{
int a[max], n;
nhap(a, n);
cout << S(a, n);
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------Input:

- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Ouput:

Yêu cầu xuất tổng các số chính phương ra màn hình
ví dụ:
input:

4
1 2 3 4