Tuesday, September 15, 2015

[Bài tập mẫu] Bài tập Java cơ bản (phần 2)

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ử.
package bai16;
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 countElement(int a[], int n, int i){
  int count= 0;
  for(int j=0 ; j<n ; j++){
   if(a[j]== i)
   count ++;
  }
  return (count);
 }
    public static void main(String[] args) {
        int n,i;
  System.out.println("Nhap n= ");
  n= nhap();
  int[] array= new int[n];
  for(i=0 ; i<n ; i++){
   System.out.println("Nhap phan tu thu " +(i+1)+" ");
   array[i]= nhap();
  }
  for(i=0 ; i<n ; i++){
   if(countElement(array, i, array[i])==0){
    System.out.println("Phan tu "+array[i]+ " xuat hien "+countElement(array, n, array[i])+" lan");
   }
  }
    }

}

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.
package bai17;
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 float nhapFloat(){
  Scanner input= new Scanner(System.in);
  boolean check= false;
  float 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 viTriMinFloat(float a[], int n){
  float min= a[0];
  int key= 0;
  for(int j=0 ; j<n ; j++){
   if(min>a[j]){
    min= a[j];
    key= j;
   }
  }
  return (key);
 }
  public static float maxFloat(float a[], int n){
  float max= a[0];
  for(int j=0 ; j<n ; j++){
   if(max<a[j]) max= a[j];
  }
  return (max);
 }
    public static void main(String[] args) {
        int n,i;
  System.out.println("Nhap n= ");
  n= nhap();
  float[] array= new float[n];
  for(i=0 ; i<n ; i++){
   System.out.println("Nhap phan tu thu " +(i+1)+" ");
   array[i]= nhapFloat();
  }
  i =0;
  System.out.println("Sap xep theo thu tu tang dan");
  while(i<n){
   System.out.println(" "+array[viTriMinFloat(array, n)]);
    array[viTriMinFloat(array, n)]= maxFloat(array, n);
  i++;
  }
    }
}

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ừ.
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());
    }

}

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.
package bai19;
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 boolean checkSNT(int n){
  if(n>1){
  for(int i=2;i<=Math.sqrt(n);i++){
   if(n%i==0) return false;
  }
  return true;
 }
  else return false;
 }
    public static int tongChuSo(int n){
  int T=0;
  while(n>0){
   T+= n%10;
   n/= 10;
  }
  return (T);
 }
    public static void main(String[] args) {
        System.out.print("Nhap S= ");
  int s= nhap();
  int i,count=0;
  System.out.println("Cac so nguyen to co tong cac chu so co tong bang "+s+" la: ");
  for(i=10000 ; i<=99999 ; i++){
   if(checkSNT(i)){
    if(tongChuSo(i)== s) {
     System.out.println(" "+i);
     count++;
    }
    else continue;
   }
  }
  System.out.println("Co "+count+" so thoa man");
    }

}

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ố.
package bai20;
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);
 }
    //Ham kiem tra so nguyen to
 public static boolean checkSNT(int n){
  if(n>1){
  for(int i=2;i<=Math.sqrt(n);i++){
   if(n%i==0) return false;
  }
  return true;
 }
  else return false;
 }
    public static void main(String[] args) {
        System.out.print("Nhap n= ");
  int n= nhap();
  int[] f= new int[n];
  f[0]= 1; f[1]= 1;
  int i=1,count=1;
  System.out.print("Cac so Fibonanci nho hon "+n+" la so nguyen to: \n 1");
  while(f[i]<n){
   if(checkSNT(f[i])){
    System.out.print(" "+f[i]);
    count++;
   }
   i++;
   f[i]= f[i-1] + f[i-2];
  }
  System.out.println("\n Co "+count+" so thoa man");
    }

}

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:
a) Tính tổng các chữ số của n.
b) Phân tích n thành các thừa số nguyên tố.
package bai21;
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 tongChuSo(int n){
  int T=0;
  while(n>0){
   T+= n%10;
   n/= 10;
  }
  return (T);
 }
    //Ham kiem tra so nguyen to
 public static boolean checkSNT(int n){
  if(n>1){
  for(int i=2;i<=Math.sqrt(n);i++){
   if(n%i==0) return false;
  }
  return true;
 }
  else return false;
 }
    public static void phanTich(int n){
  int i=2;
  while(n>1){
   if(checkSNT(i)){
    if(n%i==0){
     System.out.print(i+".");
     n/=i;
    }
    else i++;
   }
   else i++;
  }
 }
    public static void main(String[] args) {
        System.out.print("Nhap n");
  int n= nhap();
  System.out.print("n= 1" );
  phanTich(n);
  System.out.println("Tong cac chu so cua "+n+" la: "+tongChuSo(n));
    }

}

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:
a) Liệt kê các ước số của n. Có bao nhiêu ước số.
b) Liệt kê các ước số là nguyên tố của n.
package bai22;
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 boolean checkSNT(int n){
  if(n>1){
  for(int i=2;i<=Math.sqrt(n);i++){
   if(n%i==0) return false;
  }
  return true;
 }
  else return false;
 }
    public static void lietKeUoc(int n){
  int count=0;
  System.out.print("\nCac uoc cua "+n+" la:");
  for(int i=1 ; i<=n ; i++){
   if(n%i==0) {
    System.out.print(" "+i);
    count++;
   }
  }
   System.out.println("\nCo "+count+" uoc");
 }
 public static void lietKeUocSNT(int n){
  int count=0;
  System.out.print("\nCac uoc cua "+n+" la:");
  for(int i=1 ; i<=n ; i++){
   if(n%i==0 && (checkSNT(i))) {
    System.out.print(" "+i);
    count++;
   }
  }
   System.out.println("\nCo "+count+" uoc la so nguyen to");
 }
    public static void main(String[] args) {
        System.out.print("Nhap n");
  int n= nhap();
  lietKeUoc(n);
  lietKeUocSNT(n);
    }

}

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:
a) Liệt kê n số nguyên tố đầu tiên.
b) Liệt kê n số Fibonaci đầu tiên.
package bai23;
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 boolean checkSNT(int n){
  if(n>1){
  for(int i=2;i<=Math.sqrt(n);i++){
   if(n%i==0) return false;
  }
  return true;
 }
  else return false;
 }
    public static void lietKeSNT(int n){
  int i=1,count=0;
  System.out.println("Cac so nguyen to nho hon "+n+" la: ");
  while(i<n){
   if(checkSNT(i)){
    System.out.print(" "+i);
    count++;
   }
   i++;
  }
  System.out.println("\n Co "+count+" so thoa man");
 }
    public static void main(String[] args) {
        System.out.print("Nhap n");
  int n= nhap();
  lietKeSNT(n);
  int[] f= new int[n];
  f[0]= 1; f[1]= 1;
  int i=1;
  System.out.print("Cac so Fibonanci nho hon "+n+" la : \n 1");
  while(f[i]<n){
    System.out.print(" "+f[i]);
   i++;
   f[i]= f[i-1] + f[i-2];
  }
  System.out.println("\n Co "+i+" so thoa man");
    }

}

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:
a)Tìm phần tử lớn nhất của ma trận cùng chỉ số của số đó.
b)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).
c)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.
package bai24;
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 boolean checkSNT(int n){
  if(n>1){
  for(int i=2;i<=Math.sqrt(n);i++){
   if(n%i==0) return false;
  }
  return true;
 }
  else return false;
 }
    public static void inMT(int[][] A, int n, int m){
  int i,j;
  for(i=0 ; i<n ; i++){
   System.out.print("\n");
   for(j=0 ; j<m ; j++) System.out.print(" "+A[i][j]);
  }
 }
    public static int findMaxMT(int[][] A, int n, int m){
  int Max= A[0][0];
  for(int i=0 ; i<n ; i++){
   for(int j=0 ; j<m ; j++){
    if(Max<A[i][j]) Max= A[i][j];
   }
  }
  return (Max);
 }
 //Tim nhung phan tu la SNT
 public static void phanTuSNT(int[][] A, int n, int m){
  int count=0,i,j;
  System.out.println("\nCac phan tu la SNT (nhung phan tu ko la SNT =0): ");
  for(i=0 ; i<n ; i++){
   System.out.print("\n");
   for(j=0 ; j<m ; j++){
    if(checkSNT(A[i][j])){
     count++;
     System.out.print(" "+A[i][j]);
    }
    else System.out.print(" "+0);
   }
  }
  System.out.println("\n Co "+count+" phan tu la so nguyen to");
 }
 //Sap xep cac cot theo thu tang dan
 public static void sortColum(int[][] A, int n, int m){
  int i,j,temp;
  for(j=0 ; j<m ; j++){
   for(i=1 ; i<n ; i++){
    if(A[i-1][j]>A[i][j]){
     temp= A[i-1][j];
     A[i-1][j]= A[i][j];
     A[i][j]= temp;
    }
   }
  }
  inMT(A, n, m);
 }
    public static void main(String[] args) {
        System.out.print("Nhap so hang n=");
  int n= nhap();
  System.out.print("Nhap so cot m=");
  int m= nhap();
  int [][] A= new int[n][m];
  int i,j;
  for(i=0 ; i<n ; i++){
   for(j=0 ; j<m ; j++){
    System.out.println("Nhap phan tu thu A["+(i+1)+"]["+(j+1)+"]= ");
    A[i][j]= nhap();
   }
  }
  System.out.println("Ma tran nhap vao: ");
  inMT(A, n, m);
  for(i=0 ; i<n ; i++){
   for(j=0 ; j<m ; j++){
    if(A[i][j]==findMaxMT(A, n, m))System.out.println("\nPhan tu o hang "+i+" cot "+j+" dat Max: A["+i+"]["+j+"]= "+A[i][j]);
   }
  }

  phanTuSNT(A, n, m);
  sortColum(A, n, m);
    }

}

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:
a)Là số nguyên tố.
b)Là số thuận nghịch.
c)Mỗi chữ số đều là số nguyên tố
package bai25;
public class Main {
    public static boolean checkSNT(int n){
  if(n>1){
  for(int i=2;i<=Math.sqrt(n);i++){
   if(n%i==0) return false;
  }
  return true;
 }
  else return false;
 }
    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 boolean nguyenTo(int n){
  while(n!=0){
   if(!checkSNT(n%10)) return false;
   n/= 10;
  }
  return true;
 }
    public static void main(String[] args) {
        int i,count= 0;
  System.out.println("cac so tu 5-7 chu so thoa man dieu kien la: ");
  for(i=22223 ; i<7777777 ; i+=2){
   if(checkSNT(i) && nguyenTo(i) && testSoThuanNghich(i)){
    System.out.println(" "+i); count++;
   }
  }
  System.out.println("\n Co "+count+" so thoa man");
    }

}

Bài 26. Viết chương trình liệt kê các số nguyên có 7 chữ số thoả mãn:
a)Là số nguyên tố.
b)Là số thuận nghịch.
c)Tổng các chữ số của số đó là một số thuận nghịch
package bai26;

public class Main {
    public static boolean checkSNT(int n){
  if(n>1){
  for(int i=2;i<=Math.sqrt(n);i++){
   if(n%i==0) return false;
  }
  return true;
 }
  else return false;
 }
    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 boolean nguyenToTong(int n){
  int T= 0;
  while(n!=0){
   T+= n%10;
   if(!checkSNT(T)) return false;
   n/= 10;
  }
  return true;
 }
    public static void main(String[] args) {
        int i,count= 0;
  System.out.println("cac so tu 5-7 chu so thoa man dieu kien la: ");
  for(i=22223 ; i<7777777 ; i+=2){
   if(checkSNT(i) && nguyenToTong(i) && testSoThuanNghich(i)){
    System.out.println(" "+i); count++;
   }
  }
  System.out.println("\n Co "+count+" so thoa man");
    }

}


Cám ơn bạn đã đọc bài viết này. Hãy chia sẻ bài viết và bình luận ý kiến của bạn ở bên dưới.

Share this

Chào mừng bạn đến với SimpleCodeCJava Blog - Mục đích của chúng tôi khi thành lập blog này là muốn chia sẻ những kiến thức và kinh nghiệm lập trình mà chúng tôi đã học được với mong muốn giúp đỡ mọi người, giúp bạn rút ngắn được thời gian tìm hiểu cũng như việc giải quyết những vấn đề trong lập trình C và Java.

1 Comment to "[Bài tập mẫu] Bài tập Java cơ bản (phần 2)"