Bài tập Java
cơ bản, có lời giải code mẫu
Để phục
vụ nhu cầu học Java của
các bạn, Quản Trị Mạng đã tổng hợp lại một số bài tập Java từ nhiều nguồn, có
kèm theo code mẫu (cho một số bài). Hy vọng có thể giúp ích
cho quá trình học tập ngôn ngữ lập trình Java của các
bạn.
Bài tập Java cơ bản
Bài
1. Viết
chương trình tìm ước số chung lớn nhất, bội số chung nhỏ nhất của hai số tự
nhiên a và b.
Bài
2. Viết
chương trình chuyển đổi một số tự nhiên ở hệ cơ số 10 thành số ở hệ cơ số b bất
kì (1< b≤ 36).
Bài
3. Hãy viết
chương trình tính tổng các chữ số của một số nguyên bất kỳ. Ví dụ: Số 8545604
có tổng các chữ số là: 8+5+4+5+6+0+4= 32.
Bài
4. Viết
chương trình phân tích một số nguyên thành các thừa số nguyên tố Ví dụ: Số 28
được phân tích thành 2 x 2 x 7
Bài
5. Viết
chương trình liệt kê tất cả các số nguyên tố nhỏ hơn n cho trước.
Bài
6. Viết
chương trình liệt kê n số nguyên tố đầu tiên.
Bài
7. Dãy số
Fibonacci được định nghĩa như sau: F0 =1, F1 = 1; Fn = Fn-1 + Fn-2 với n>=2.
Hãy viết chương trình tìm số Fibonacci thứ n.
Bài
8. Một số
được gọi là số thuận nghịch độc nếu ta đọc từ trái sang phải hay từ phải sang
trái số đó ta vẫn nhận được một số giống nhau. Hãy liệt kê tất cả các số thuận
nghịch độc có sáu chữ số (Ví dụ số: 558855).
Bài
9. Viết
chương trình liệt kê tất cả các xâu nhị phân độ dài n.
Bài
10. Viết
chương trình liệt kê tất cả các tập con k phần tử của 1, 2, ..,n (k≤n).
Bài
11. Viết
chương trình liệt kê tất cả các hoán vị của 1, 2, .., n.
Bài
12. Tính giá
trị của đa thức P(x)=anxn+ an-1xn-1+ ... + a1x+ a0 theo cách tính của Horner: P(x)=((((anx+ an- 1)x+ an-2... + a1)x+ a0
Bài
13. Nhập số
liệu cho 2 dãy số thực a0, a1 ,..., am-1 và b0 , b1 ,..., bn-1. Giả sử cả 2 dãy này đã được sắp theo thứ tự tăng
dần. Hãy tận dụng tính sắp xếp của 2 dãy và tạo dãy c0 , c1 ,..., cm+n-1 là hợp của 2 dãy trên, sao cho dãy ci cũng có thứ tự tăng dần.
Bài
14. Nhập số
liệu cho dãy số thực a0, a1,..., an-1. Hãy liệt kê
các phần tử xuất hiện trong dãy đúng một lần.
Bài
15. Nhập số
liệu cho dãy số thực a0, a1,..., an-1. Hãy liệt kê
các phần tử xuất hiện trong dãy đúng 2 lần.
Bài
16. Nhập số
liệu cho dãy số thực a0, a1,..., an-1. In ra màn
hình số lần xuất hiện của các phần tử.
Bài
17. Nhập số n
và dãy các số thực a0, a1,...,
an-1. Không đổi chỗ các phần tử và không dùng thêm
mảng số thực nào khác (có thể dùng mảng số nguyên nếu cần) hãy cho hiện trên
màn hình dãy trên theo thứ tự tăng dần.
Bài
18. Nhập một
xâu ký tự. Đếm số từ của xâu ký tự đó. Thí dụ " Trường học " có 2 từ.
Bài
19. Viết
chương trình liệt kê tất cả các số nguyên tố có 5 chữ số sao cho tổng của các
chữ số trong mỗi số nguyên tố đều bằng S cho trước.
Bài
20. Nhập một
số tự nhiên n. Hãy liệt kê các số Fibonaci nhỏ hơn n là số nguyên tố.
Bài
21. Viết
chương trình nhập một số nguyên dương n và thực hiện các chức năng sau:
1. Tính tổng các chữ số của
2. Phân tích n thành các thừa số
nguyêntố.
Bài
22. Viết
chương trình nhập một số nguyên dương n và thực hiện các chức năng sau:
1. Liệt kê các ước số của n. Có bao
nhiêu ướcsố.
2. Liệt kê các ước số là nguyên tố
của
Bài
23. Viết
chương trình nhập một số nguyên dương n và thực hiện các chức năng sau:
1. Liệt kê n số nguyên tố đầu tiên.
2. Liệt kê n số Fibonaci đầu tiên.
Bài
24. Viết
chương trình nhập vào vào ma trận A có n dòng, m cột, các phần tử là những số
nguyên lớn hơn 0 và nhỏ hơn 100 được nhập vào từ bàn phím. Thực hiện các chức
năng sau:
1. Tìm phần tử lớn nhất của ma trận
cùng chỉ số của số đó.
2. Tìm và in ra các phần tử là số
nguyên tố của ma trận (các phần tử không nguyên tố thì thay bằng số0).
3. Sắp xếp tất cả các cột của ma
trận theo thứ tự tăng dần và in kết quả ra màn hình.
Bài
25. Viết
chương trình liệt kê các số nguyên có từ 5 đến 7 chữ số thoả mãn:
1. Là số nguyên tố.
2. Là số thuận nghịch.
3. Mỗi chữ số đều là số nguyên tố
Bài
26. Viết
chương trình liệt kê các số nguyên có 7 chữ số thoả mãn:
1. Là số nguyên tố.
2. Là số thuận nghịch.
3. Tổng các chữ số của số đó là một
số thuận nghịch
Bài
27. Viết
chương trình nhập vào vào mảng A có n phần tử, các phần tử là những số nguyên
lớn hơn 0 và nhỏ hơn 100 được nhập vào từ bàn phím. Thực hiện các chức năng
sau:
1. Tìm phần tử lớn nhất và lớn thứ 2
trong mảng cùng chỉ số của các số đó.
2. Sắp xếp mảng theo thứ tự giảm
dần.
3. Nhập một số nguyên x và chèn x
vào mảng A sao cho vẫn đảm bảo tính sắp xếp giảm dần.
Bài
28. Viết
chương trình nhập vào vào ma trận A có n dòng, m cột, các phần tử là những số
nguyên lớn hơn 0 và nhỏ hơn 100 được nhập vào từ bàn phím. Thực hiện các chức
năng sau:
1. Tìm phần tử lớn nhất của ma trận
cùng chỉ số của số đó.
2. Tìm và in ra các phần tử là số
nguyên tố của ma trận (các phần tử không nguyên tố thì thay bằng số 0).
3. Tìm hàng trong ma trận có nhiều
số nguyên tố nhất.
Bài
29. Viết
chương trình nhập các hệ số của đa thức P bậc n (0<n<20). Thực hiện các
chức năng sau:
1. Tính giá trị của đa thức P theo
công thức Horner: P(x)=((((anx+ an-1)x+ an-2...
+ a1)x+ a0
2. Tính đạo hàm của đa thức P. In ra
các hệ số của đa thức kết quả.
3. Nhập thêm đa thức Q bậc m. Tính
tổng hai đa thức P và Q
Bài
30. Viết
chương trình nhập vào vào mảng A có n phần tử, các phần tử là những số nguyên
lớn hơn 0 và nhỏ hơn 100 được nhập vào từ bàn phím. Thực hiện các chức năng
sau:
1. Tìm phần tử lớn nhất và lớn thứ 2
trong mảng cùng chỉ số của các số đó.
2. Sắp xếp mảng theo thứ tự giảm
dần.
3. Nhập một số nguyên x và chèn x
vào mảng A sao cho vẫn đảm bảo tính sắp xếp giảm dần.
Bài
31. Viết
chương trình thực hiện chuẩn hoá một xâu ký tự nhập từ bàn phím (loại bỏ các dấu
cách thừa, chuyển ký tự đầu mỗi từ thành chữ hoa, các ký tự khác thành chữ
thường)
Bài
32. Viết
chương trình thực hiện nhập một xâu ký tự và tìm từ dài nhất trong xâu đó. Từ
đó xuất hiện ở vị trí nào? (Chú ý. nếu có nhiều từ có độ dài giống nhau thì chọn
từ đầu tiên tìm thấy).
Bài
33.Viết
chương trình thực hiện nhập một xâu họ tên theo cấu trúc: họ...đệm...tên; chuyển xâu đó sang biểu diễn theo
cấu trúc tên…họ…đệm.
Bài
34. Viết
chương trình liệt kê tất cả các phần tử của tập:

Bài 35. Viết
chương trình liệt kê tất cả các phần tử của tập

Bài 36. Viết
chương trình liệt kê tất cả các phần tử của tập

Bài
37. Cho hai
tập hợp A gồm n phần tử, B gồm m phần tử (n,m≤255), mỗi phần tử của nó là một
xâu kí tự.Ví dụ A = {“Lan”, “Hằng”, “Minh”, “Thủy”}, B = {“Nghĩa”, “Trung”,
“Minh”, “Thủy”, “Đức”}. Hãy viết chương trình thực hiện những thao tác sau:
1. Tạo lập dữ liệu cho A và B (từ
file hoặc từ bànphím)
2. Tìm
.

3. Tìm
.

4. Tìm
.

Bài
38. Cho
hai đa thức
. Hãy viết chương trình thực hiện
những thao tác sau:

1. Tạo lập hai đa thức (nhập hệ số
cho đa thức từ bàn phím hoặc file)
2. Tính 

3. Tìm đạo hàm cấp l ≤n của đa thức.
4. Tìm 

5. Tìm 

6. Tìm
và đa thức dư

Bài
39. Cho
hai ma trận vuông A cấp n. Hãy viết chương trình thực hiện các thao tác sau:
1. Tìm hàng, cột hoặc đường chéo có
tổng các phần tử lớn nhất.
2. Tìm ma trận chuyển vị của A
3. Tìm định thức của A
4. Tìm ma trận nghịch đảo của A
5. Giải hệ Phương trình tuyến tính
thuần nhất n ẩn AX = B bằng phương pháp Gauss
Bài
40. Cho
một buffer kí tự gồm n dòng. Hãy viết chương trình thực hiện các thao tác sau:
1. Tạo lập n dòng văn bản cho
buffer.
2. Đếm số từ trong Buffer.
3. Tìm tần xuất xuất hiện từ X bất
kì trong buffer.
4. Mã hóa buffer bằng kĩ thuật
Parity Bits
5. Giải mã buffer được mã hóa bằng
kĩ thuật parity.
6. Thay thế từ X bằng từ Y
Bài
41. Hãy viết
chương trình thực hiện những thao tác dưới đây:
1. Liệt kê các phần tử của tập

Trong đó
b là các
số nguyên dương, 


2. Liệt kê các phần tử của tập:

trong đó
b là các
số nguyên dương, 


1. Tính giá trị nhỏ nhất của hàm mục
tiêu

Trong đó

4. Tính giá trị nhỏ nhất của hàm mục tiêu
; trong đó
là tập các hoán vị của
.



Bài
42. Ma trận
nhị phân là ma trận mà các phần tử của nó hoặc bằng 0 hoặc bằng 1. Cho A = [aij], B = [bij] là các ma trận
nhị phân cấp m × n (i =1, 2,..,m. j= 1, 2, ..,n). Ta định nghĩa các phép hợp,
giao, nhân logic và phép lũy thừa cho A và B như sau:
·
Hợp của A
và B, được kí hiệu là A ∨ B là ma trận nhị phân cấp m×n với phần tử ở vị trí (i, j) là aij ∨ bij.
·
Giao của
A và B, được kí hiệu là A ∧ B là ma trận nhị phân cấp m×n với phần tử ở vị trí (i,j) làaij ∧ bij.
·
Tích
boolean của A và B, được kí hiệu là
là ma trận nhị phân cấp m×n
với phần tử ở vị trí (i,j) làcij = (ai1Ùb1j) Ú (ai2 ∨ b2j) ∨...∨ ( (aik ∨ bkj).

·
Nếu A là
một ma trận vuông nhị phân cấp n và r là một số nguyên dương. Lũy thừa Boolean
bậc r của A được kí hiệu là
(r lần).


Hãy viết chương trình thực hiện các thao tác sau:
1. Cho A = [aij], B = [bij]. Tìm C =A ∨ B
2. Cho A = [aij], B = [bij]. Tìm C =A ∧ B
3. Cho A = [aik], B = [bkj]. Tìm C = 

4. Cho A = [aij] tìm Ar.
Lời giải bài tập Java
Bài
1:
package bai01;
import java.util.Scanner;
public class Main {
public static int nhap()
{
Scanner input = new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static int UCLN(int a, int b){
while(a!= b){
if(a>b) a= a-b;
else b= b-a;
}
return (a);
}
public static void main(String[] args)
{ System.out.println("Nhap a");
int a = nhap();
System.out.println("Nhap b");
int b= nhap();
System.out.println("Uoc chung lon nhat cua "+a+" va "+b+" la: "+UCLN(a,b));
System.out.println("Boi chung nho nhat cua "+a+" va "+b+" la: "+((a*b)/UCLN(a,b)));
}
}
import java.util.Scanner;
public class Main {
public static int nhap()
{
Scanner input = new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static int UCLN(int a, int b){
while(a!= b){
if(a>b) a= a-b;
else b= b-a;
}
return (a);
}
public static void main(String[] args)
{ System.out.println("Nhap a");
int a = nhap();
System.out.println("Nhap b");
int b= nhap();
System.out.println("Uoc chung lon nhat cua "+a+" va "+b+" la: "+UCLN(a,b));
System.out.println("Boi chung nho nhat cua "+a+" va "+b+" la: "+((a*b)/UCLN(a,b)));
}
}
Bài
02:
package bai02;
import java.util.Scanner;
public class Main {
public static void doiCoSo(int n,int base){
if(n>=base) doiCoSo(n / base, base);
if(n % base>9) System.out.printf("%c",n%base+55);
else
System.out.print((n % base));
}
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.println("Nhap n");
int n= nhap();
System.out.println("Nhap vao co so can chuyen sang b");
int b= nhap();
System.out.println("So " +n+ " chuyen sang co so " +b+ " thanh: ");
doiCoSo(n,b);
}
}
import java.util.Scanner;
public class Main {
public static void doiCoSo(int n,int base){
if(n>=base) doiCoSo(n / base, base);
if(n % base>9) System.out.printf("%c",n%base+55);
else
System.out.print((n % base));
}
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.println("Nhap n");
int n= nhap();
System.out.println("Nhap vao co so can chuyen sang b");
int b= nhap();
System.out.println("So " +n+ " chuyen sang co so " +b+ " thanh: ");
doiCoSo(n,b);
}
}
Bài
03:
package bai03;
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static int tinhTong(long i){
int sum=0;
long n;
while(i!=0){
n= i%10;
sum+= n; i/=10;
}
return (sum);
}
public static void main(String[] args){
System.out.print("Nhap n");
int n= nhap();
System.out.println("Tong cua so "+n+" = " +tinhTong(n));
}
}
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static int tinhTong(long i){
int sum=0;
long n;
while(i!=0){
n= i%10;
sum+= n; i/=10;
}
return (sum);
}
public static void main(String[] args){
System.out.print("Nhap n");
int n= nhap();
System.out.println("Tong cua so "+n+" = " +tinhTong(n));
}
}
Bài
04:
package bai04;
import java.util.Scanner;
public class Main {
public static void phanTich(int n){
int i=2;
while(n>1){
if(cachamchung.checkSNT(i)){
if(n%i==0){
System.out.print(i+".");
n/=i;
}
else i++;
}
else i++;
}
}
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
System.out.print("n= " );
phanTich(n);
}
}
import java.util.Scanner;
public class Main {
public static void phanTich(int n){
int i=2;
while(n>1){
if(cachamchung.checkSNT(i)){
if(n%i==0){
System.out.print(i+".");
n/=i;
}
else i++;
}
else i++;
}
}
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
System.out.print("n= " );
phanTich(n);
}
}
Bài
05:
package bai05;
import java.util.Scanner;
public class Main {
public static void lietKe(int n){
System.out.print(" 2");
for(int i=3;i<n;i+=2){
if(cachamchung.checkSNT(i))System.out.print(" "+i);
}
}
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
System.out.println("Cac so nguyen to nho hon "+n+ " ");
lietKe(n);
}
}
import java.util.Scanner;
public class Main {
public static void lietKe(int n){
System.out.print(" 2");
for(int i=3;i<n;i+=2){
if(cachamchung.checkSNT(i))System.out.print(" "+i);
}
}
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
System.out.println("Cac so nguyen to nho hon "+n+ " ");
lietKe(n);
}
}
Bài
06:
package bai06;
import java.util.Scanner;
public class Main {
public static void lietKe(int n){
int i=2,count=0;
while(count<n){
if(cachamchung.checkSNT(i)){
System.out.print(" "+i);
count++;
} i++;
}
}
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
System.out.println(n+" so nguyen to dau tien la: ");
lietKe(n);
}
}
import java.util.Scanner;
public class Main {
public static void lietKe(int n){
int i=2,count=0;
while(count<n){
if(cachamchung.checkSNT(i)){
System.out.print(" "+i);
count++;
} i++;
}
}
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
System.out.println(n+" so nguyen to dau tien la: ");
lietKe(n);
}
}
Bài
07:
package bai07;
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
int[] f= new int[n+1];
f[0]= 1; f[1]= 1;
for(int i=2;i<=n;i++){
f[i]= f[i-1]+f[i-2];
}
System.out.println("So Fibonanci thu "+n+" la: f["+n+"]= "+f[n]);
}
}
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
int[] f= new int[n+1];
f[0]= 1; f[1]= 1;
for(int i=2;i<=n;i++){
f[i]= f[i-1]+f[i-2];
}
System.out.println("So Fibonanci thu "+n+" la: f["+n+"]= "+f[n]);
}
}
Bài
08:
package bai08;
public class Main {
public static boolean testSoThuanNghich(int n){
StringBuilder xau= new StringBuilder();
String str= ""+n;
xau.append(str);
String check= ""+xau.reverse();
if(str.equals(check)) return true;
else return false;
}
public static void main(String[] args) {
int n,count=0;
for(n=100000 ; n<= 999999 ; n++){
if(testSoThuanNghich(n)){
System.out.println(n);count++;
}
}
System.out.println("Co "+count+" so thuan nghich co 6 chu so");
}
}
public class Main {
public static boolean testSoThuanNghich(int n){
StringBuilder xau= new StringBuilder();
String str= ""+n;
xau.append(str);
String check= ""+xau.reverse();
if(str.equals(check)) return true;
else return false;
}
public static void main(String[] args) {
int n,count=0;
for(n=100000 ; n<= 999999 ; n++){
if(testSoThuanNghich(n)){
System.out.println(n);count++;
}
}
System.out.println("Co "+count+" so thuan nghich co 6 chu so");
}
}
Bài
09:
package bai09;
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.println("Nhap n");
int n= nhap();
int[] array= new int[n];
int tich;
do{
tich= 1;
//In ra mang va tinh tich cac phan tu trong mang
System.out.println("");
for(int j=0 ; j<n ; j++){
System.out.print(" " +array[j]);
tich*= array[j];
}
int i=n-1;
do{
if(array[i]==0){
array[i]=1;
for(int j=n-1 ; j>i ;j--){
array[j]= 0;
}
break;
}
else i--;
}while(i>=0);
}while(tich!=1);
}
}
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.println("Nhap n");
int n= nhap();
int[] array= new int[n];
int tich;
do{
tich= 1;
//In ra mang va tinh tich cac phan tu trong mang
System.out.println("");
for(int j=0 ; j<n ; j++){
System.out.print(" " +array[j]);
tich*= array[j];
}
int i=n-1;
do{
if(array[i]==0){
array[i]=1;
for(int j=n-1 ; j>i ;j--){
array[j]= 0;
}
break;
}
else i--;
}while(i>=0);
}while(tich!=1);
}
}
Bài
10:
package bai10;
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void result(int a[],int k){
int i;
System.out.println();
for(i=1 ; i<=k ; i++){
System.out.print(" "+a[i]);
}
}
public static void try_backTrack(int a[], int n, int k, int i){
int j;
for(j=a[i-1]+1 ; j<=(n-k+i) ; j++){
a[i]= j;
if(i== k) result(a,k);
else try_backTrack(a, n, k, i+1);
}
}
public static void main(String[] args) {
System.out.println("Nhap n");
int n= nhap();
int[] array= new int[n+1];
int k;
System.out.println("Liet ke tat ca cac tap con k phan tu cua 1,2,..,"+n+" : ");
for(k=1 ; k<=n ; k++){
System.out.println("\n Tap con "+k+" phan tu: ");
try_backTrack(array,n,k,1);
}
}
}
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void result(int a[],int k){
int i;
System.out.println();
for(i=1 ; i<=k ; i++){
System.out.print(" "+a[i]);
}
}
public static void try_backTrack(int a[], int n, int k, int i){
int j;
for(j=a[i-1]+1 ; j<=(n-k+i) ; j++){
a[i]= j;
if(i== k) result(a,k);
else try_backTrack(a, n, k, i+1);
}
}
public static void main(String[] args) {
System.out.println("Nhap n");
int n= nhap();
int[] array= new int[n+1];
int k;
System.out.println("Liet ke tat ca cac tap con k phan tu cua 1,2,..,"+n+" : ");
for(k=1 ; k<=n ; k++){
System.out.println("\n Tap con "+k+" phan tu: ");
try_backTrack(array,n,k,1);
}
}
}
Bài
11:
package bai11;
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
int[] array= new int[n+2];
int i,j,k=n-1,temp,check=1;
for(i=0 ; i<n ; i++){
array[i]= i+1;
}
System.out.println("Cac hoan vi ke la: ");
try{
i= n-2;
while(check>0){
//In ra hoan vi System.out.println(" ");
for(j=0 ; j<n ; j++){
System.out.print(" "+array[j]);
}
for(i= n-2 ; i>=0 ; i--){
check= 1;
if(array[i] < array[i+1]){
if(i==n-2){
temp= array[i];
array[i]= array[n-1];
array[n-1]= temp;
break;
}
else{
//Tim so a[k] nho nhat ma >a[i] trong cac so ben phai a[i]
k= i+1;
for(j=i+1 ; j<n ; j++){
if(array[i+1]>array[j] && array[j]>array[i]) k=j;
}
//Doi cho a[k] va a[i]
temp= array[i];
array[i]= array[k];
array[k]= temp;
//Sap xep lai tu a[i+1] toi a[n]
for(j=i+1 ; j<n ; j++){
for(int m= i+1 ; m<n ; m++){
if(array[j]<array[m]){
temp= array[j];
array[j]= array[m];
array[m]= temp;
}
}
}
break;
}
}
else {
check=0;
// break;
}
}
//if(i==0)check=0;
}
}catch(Exception e){}
}
}
import java.util.Scanner;
public class Main {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void main(String[] args) {
System.out.print("Nhap n");
int n= nhap();
int[] array= new int[n+2];
int i,j,k=n-1,temp,check=1;
for(i=0 ; i<n ; i++){
array[i]= i+1;
}
System.out.println("Cac hoan vi ke la: ");
try{
i= n-2;
while(check>0){
//In ra hoan vi System.out.println(" ");
for(j=0 ; j<n ; j++){
System.out.print(" "+array[j]);
}
for(i= n-2 ; i>=0 ; i--){
check= 1;
if(array[i] < array[i+1]){
if(i==n-2){
temp= array[i];
array[i]= array[n-1];
array[n-1]= temp;
break;
}
else{
//Tim so a[k] nho nhat ma >a[i] trong cac so ben phai a[i]
k= i+1;
for(j=i+1 ; j<n ; j++){
if(array[i+1]>array[j] && array[j]>array[i]) k=j;
}
//Doi cho a[k] va a[i]
temp= array[i];
array[i]= array[k];
array[k]= temp;
//Sap xep lai tu a[i+1] toi a[n]
for(j=i+1 ; j<n ; j++){
for(int m= i+1 ; m<n ; m++){
if(array[j]<array[m]){
temp= array[j];
array[j]= array[m];
array[m]= temp;
}
}
}
break;
}
}
else {
check=0;
// break;
}
}
//if(i==0)check=0;
}
}catch(Exception e){}
}
}
Bài
18:
package bai18;
import java.util.*;
public class Main {
public static void main(String[] args)
{ Scanner input= new
Scanner(System.in);
System.out.println("Nhap vao 1 xau: ");
String str= input.nextLine();
StringTokenizer strToken= new
StringTokenizer(str, " "); System.out.println("So cac tu trong xau la: "+strToken.countTokens());
}
}
import java.util.*;
public class Main {
public static void main(String[] args)
{ Scanner input= new
Scanner(System.in);
System.out.println("Nhap vao 1 xau: ");
String str= input.nextLine();
StringTokenizer strToken= new
StringTokenizer(str, " "); System.out.println("So cac tu trong xau la: "+strToken.countTokens());
}
}
Bài
33:
import java.util.*;
public class Bai33 {
public static String doiViTri(String strInput){
String str= Bai31.chuanHoa(strInput);
StringTokenizer strToken= new StringTokenizer(str," ");
String ho = strToken.nextToken();
String hoDem = strToken.nextToken();
String ten = strToken.nextToken();
String strOutput= ten+" "+ho+" "+hoDem;
return(strOutput);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input= new Scanner(System.in);
System.out.println("Nhap vao ho ten ( ho-ho dem -ten) : ");
String strInput= input.nextLine();
System.out.println("Ho va ten duoc sap xep lai (ten- ho - ho dem) :
"+doiViTri(strInput));
}
}
public class Bai33 {
public static String doiViTri(String strInput){
String str= Bai31.chuanHoa(strInput);
StringTokenizer strToken= new StringTokenizer(str," ");
String ho = strToken.nextToken();
String hoDem = strToken.nextToken();
String ten = strToken.nextToken();
String strOutput= ten+" "+ho+" "+hoDem;
return(strOutput);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input= new Scanner(System.in);
System.out.println("Nhap vao ho ten ( ho-ho dem -ten) : ");
String strInput= input.nextLine();
System.out.println("Ho va ten duoc sap xep lai (ten- ho - ho dem) :
"+doiViTri(strInput));
}
}
Nguồn: An Nguyễn (toptailieu
Không có nhận xét nào:
Đăng nhận xét