Bài tập về class trong Java có lời giải

200 Bài tập Java có lời giải chi tiết  Đây là loạt bài tập Java cơ bản có lời giải dành cho các bạn đang học Java. Việc làm các bài tập java có đáp án này giúp các bạn học dễ dàng hơn cũng như không gặp quá nhiều khó khăn khi vướng mắc.

Nếu bạn đang tìm kiếm một khóa học lập trình Java cho riêng mình, bạn có thể tham khảo khảo học Java cơ bản miễn phí tại đây hoặc Khóa học lập trình Java đầy đủ tại đây.

Bài tập Java cơ bản có đáp á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.

01234567891011121314151617181920212223242526272829303132333435363738394041 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)));}}

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).

012345678910111213141516171819202122232425262728293031323334353637 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);elseSystem.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 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.

01234567891011121314151617181920212223242526272829303132333435363738394041 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));}}

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

0123456789101112131415161718192021222324252627282930313233343536373839404142434445 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);}}

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.

01234567891011121314151617181920212223242526272829303132333435 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);}}

Bài 6. Viết chương trình liệt kê n số nguyên tố đầu tiên.

0123456789101112131415161718192021222324252627282930313233343536373839 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);}}

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.

012345678910111213141516171819202122232425262728293031323334 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]);}}

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).

012345678910111213141516171819202122232425262728 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");}}

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.

0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 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 mangSystem.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. 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 (kn).

0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 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);}}}

Download trọn bộ bài tập Java có lời giải

Phía bên trên là 10 bài tập đầu tiên, nếu bạn có mong muốn làm tiếp các bài tập tiếp theo thì có thể xem tiếp trọn bộ bài tập này tại đây:

  • Link đề bài: https://nguyenvanhieu.vn/go/4102/
  • Link lời giải: https://nguyenvanhieu.vn/go/4103/