0% found this document useful (0 votes)
67 views114 pages

TH Java

The document appears to be a table of contents or index for a larger document written in Vietnamese. It contains 39 sections/questions with the page numbers listed for each. The sections cover topics like inputting and calculating values, prime numbers, Fibonacci sequences, factoring numbers, and more. The document provides a structured outline of the content but no summaries of the individual sections.

Uploaded by

Nhat Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views114 pages

TH Java

The document appears to be a table of contents or index for a larger document written in Vietnamese. It contains 39 sections/questions with the page numbers listed for each. The sections cover topics like inputting and calculating values, prime numbers, Fibonacci sequences, factoring numbers, and more. The document provides a structured outline of the content but no summaries of the individual sections.

Uploaded by

Nhat Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 114

Mục lục

Câu1……………………………………………………………………………………………… 2

Câu 2………………………………………………………………………………………………6

Câu 3…………………………………………………………………………………………… 11

Câu 4……………………………………………………………………………………………..16

Câu 1……………………………………………………………………………………………21

Câu 2……………………………………………………………………………………………23

Câu 3……………………………………………………………………………………………24

Câu 4……………………………………………………………………………………………25

Câu 6……………………………………………………………………………………………27

Câu 7……………………………………………………………………………………………38

Câu 9……………………………………………………………………………………………30

Câu 10……………………………………………………………………………………………34

Câu 11……………………………………………………………………………………………35

Câu 12……………………………………………………………………………………………

Câu 13……………………………………………………………………………………………36

Câu 14……………………………………………………………………………………………37

Câu 15……………………………………………………………………………………………40

Câu 16……………………………………………………………………………………………46

Câu 18……………………………………………………………………………………………49

Câu 19……………………………………………………………………………………………50

Câu 20……………………………………………………………………………………………52

Câu 21……………………………………………………………………………………………54

Câu 22……………………………………………………………………………………………55

1
Câu 23……………………………………………………………………………………………58

Câu 24……………………………………………………………………………………………60

Câu 25……………………………………………………………………………………………62

Câu 26……………………………………………………………………………………………63

Câu 27……………………………………………………………………………………………65

Câu 28……………………………………………………………………………………………67

Câu 29……………………………………………………………………………………………72

Câu 30……………………………………………………………………………………………74

Câu 31……………………………………………………………………………………………76

Câu 32……………………………………………………………………………………………80

Câu 33……………………………………………………………………………………………85

Câu 34……………………………………………………………………………………………89

Câu 35……………………………………………………………………………………………93

Câu 36……………………………………………………………………………………………95

Câu 37……………………………………………………………………………………………96

Câu 38……………………………………………………………………………………………97

Câu 39: …………………………………………………………………………………………105

Câu 1
package demo;

import java.util.Scanner;

public class BaiTap1 {

public static void main(String[] args) {

int key=-1, n=0;

2
while(key!=0){

System.out.println("Menu:\n1_Nhap vao so nguyen n\n2_Tinh tong 1+2+3+..+n"

+ "\n3_Tinh tich 1.2.3...n\n4_Tong 2+4+6+..."

+ "\n5_Tong 1+3+5+...\n6_Viet ra cac so nguyen to <n"

+ "\n7_Viet ra day Fibonacci <n\n8_Viet ra tong cac chu so cua n"

+ "\n9_Viet cac uoc cua n\n0_Thoat\nBan chon?");

Scanner input = new Scanner(System.in);

key = input.nextInt();

switch(key){

case 1:

n=input.nextInt();

break;

case 2:

System.out.println("Ket qua: "+ (n*(n+1))/2);

break;

case 3:

int res=1;

for(int i=1; i<=n; i++) res=res*i;

System.out.println("Ket qua: "+ res);

break;

case 4:

int res4=0;

for(int i=2; i<=n; i=i+2) res4 = res4 + i;

System.out.println("Ket qua: "+res4);

3
break;

case 5:

int res5=0;

for(int i=1; i<=n; i+=2) res5=res5+i;

System.out.println(res5);

break;

case 6:

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

if(laNguyenTo(i)){

System.out.print(i+" ");

System.out.println();

break;

case 7:

int j=1, k=1; int tmp;

System.out.print("0 1 1 ");

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

tmp=k;

k=k+j;

j=tmp;

System.out.print(k+" ");

System.out.println();

break;

4
case 8:

int m=n, tong =0;

while(m>0){

int i=m%10; m=m/10;

tong = tong + i;

System.out.println(tong);

break;

case 9:

int i; double can=Math.sqrt(n);

for(i=1; i<can; i++){

if(n%i==0){

System.out.print(i+" "+ n/i+" ");

if(n%can==0) System.out.println(can);

public static boolean laNguyenTo(int i){

if(i<2) return false;

for(int j=2; j<=Math.sqrt(i); j++){

5
if(i%j==0) return false;

return true;

Câu 2
Bai 2:

package demo;

import java.util.Scanner;

public class BaiTap1 {

public static void main(String[] args) {

MN mn = null;

int a = 0, b = 0;

Scanner input = new Scanner(System.in);

while (true) {

System.out.println("1. Nhap 2 so m, n: ");

System.out.println("2. Dua ra UCLN va BCNN: ");

System.out.println("3. Dua ra cac so nguyen to tu m den n: ");

System.out.println("4. Dua ra cac so thuan nghic trong (m, n): ");

System.out.println("0. Thoat: ");

System.out.println("Moi chon: ");

int test = input.nextInt();

6
switch (test) {

case 1:

System.out.println("m = ");

a = input.nextInt();

System.out.println("n = ");

b = input.nextInt();

break;

case 2:

System.out.println("a = " + a + " b = " + b);

mn = new MN(a, b);

System.out.println("UCLN: " + mn.UCLN());

System.out.println("BCNN: " + mn.BCNN());

break;

case 3:

mn = new MN(a, b);

System.out.print("Day nguyen to: ");

mn.soNT();

break;

case 4:

mn = new MN(a, b);

System.out.println(mn.m+" "+mn.n);

System.out.println("So thuan nghich: ");

mn.soTN();

break;

7
case 0:

System.exit(0);

break;

default:

System.out.println("Nhap so tu 0 den 4");

package demo;

public class MN {

public int m, n;

public MN(int m, int n) {

this.m = m;

this.n = n;

public int UCLN() {

int m1 = m, n1 = n;

8
while (m1 != n1) {

if (m1 > n1) {

m1 -= n1;

} else {

n1 -= m1;

return m1;

public int BCNN() {

return (m * n) / UCLN();

public boolean laNT(int n) {

if (n < 2) {

return false;

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

return false;

return true;

9
public void soNT() {

if (m > n) {

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

if (laNT(i)) {

System.out.print(i + " ");

System.out.println("");

} else {

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

if (laNT(i)) {

System.out.print(i + " ");

System.out.println("");

public void soTN() {

if (m > n) {

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

if (isTN(i)) {

System.out.print(i + " ");

10
}

System.out.println("");

} else {

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

if (isTN(i)) {

System.out.print(i + " ");

System.out.println("");

public boolean isTN(int n) {

int num = 0;

int n2 = n;

while (n > 0) {

int m = n % 10;

num = num * 10 + m;

n = n / 10;

return n2 == num;

Câu 3
Bai 3:

11
package demo;

import java.util.Scanner;

public class Menu {

public static void main(String[] args) {

double a = 0, b = 0, c = 0;

ABC abc = new ABC();

while (true) {

System.out.println("1. Nhap 3 so a, b, c: ");

System.out.println("2. Tìm nghi?m ax^2 + bx +c ");

System.out.println("3. Tính dien tich tam giac: ");

System.out.println("4. Tinh sin khi x = a");

System.out.println("5. Tinh cos khi x = b");

System.out.println("6. Tinh chu vi, dien tich hinh hop chu nhat");

System.out.println("0. Thoat");

System.out.print("Moi nhap: ");

int test = (new Scanner(System.in)).nextInt();

switch (test) {

case 1:

System.out.print("a = ");

a = (new Scanner(System.in)).nextDouble();

12
System.out.print(" b = ");

b = (new Scanner(System.in)).nextDouble();

System.out.print(" c = ");

c = (new Scanner(System.in)).nextDouble();

break;

case 2:

abc.timNghiem(a, b, c);

break;

case 3:

abc.dienTich(a, b, c);

break;

case 4:

System.out.println("sin(x) = " + Math.sin(a));

break;

case 5:

System.out.println("cos(x) = " + Math.cos(b));

break;

case 6:

abc.dtHinhHop(a, b, c);

break;

case 0:

System.exit(0);

break;

default:

System.out.println("Nhap tu 0 den 6");

13
}

package demo;

public class ABC {

public void timNghiem(double a, double b, double c) {

if (a == 0) {

if (b == 0) {

System.out.println("Vo nghiem");

} else {

System.out.println("Mot nghiem x = " + (-c / b));

} else {

double delta = (Math.pow(b, 2)) - 4 * a * c;

if (delta < 0) {

System.out.println("Vo nghiem");

} else if (delta == 0) {

System.out.println("Mot nghiem x = " + ((-b) / (2 * a)));

} else {

14
System.out.println("Hai nghiem: x1 = " + ((-b) + Math.sqrt(delta)) / (2 * a) + " x2 = "

+ "" + ((-b) - Math.sqrt(delta)) / (2 * a));

public boolean isTamGiac(double a, double b, double c) {

if (a < 0 || b < 0 || c < 0) {

return false;

} else {

if ((a + b <= c) || (a + c) <= b || (b + c) <= a) {

return false;

} else {

return true;

public void dienTich(double a, double b, double c) {

if (!isTamGiac(a, b, c)) {

System.out.println("Canh khong phu hop");

} else {

double s = (0.5) * (a + b + c);

double S = Math.sqrt(s * (s - a) * (s - b) * (s - c));

System.out.println("Dien tich la: " + S);

15
}

public void dtHinhHop(double a, double b, double c) {

if (a < 0 || b < 0 || c < 0) {

System.out.println("Canh am");

} else {

double dt = 2 * a * b + 2 * a * c + 2 * b * c;

System.out.println("Dien tich: " + dt);

Câu 4
Bai 4:

package demo;

import java.util.Scanner;

public class Menu {

public static void main(String[] args) {

Array arr = new Array(0);

while (true) {

16
System.out.println("1. Nhap vao day so nguyen");

System.out.println("2. Dua ra tong");

System.out.println("3. Dua ra trung binh");

System.out.println("4. Dua ra min, max");

System.out.println("5. Dua ra cac so nguyen to");

System.out.println("0. Thoat");

System.out.println("Moi chon ");

Scanner input = new Scanner(System.in);

int selected = input.nextInt();

switch (selected) {

case 1:

System.out.println("Nhap so phan tu: ");

int num = input.nextInt();

arr = new Array(num);

arr.init();

break;

case 2:

System.out.println("Tong: " + arr.sum());

break;

case 3:

System.out.println("Trung binh: " + arr.tb());

break;

case 4:

System.out.println("Max: " + arr.max() + " Min: " + arr.min());

break;

17
case 5:

System.out.println("Nguyen to: ");

arr.soNT();

break;

case 0:

System.exit(0);

break;

default:

System.out.println("So nhap khong hop le");

package demo;

import java.util.Scanner;

public class Array {

private int[] arr;

public Array(int n) {

18
arr = new int[n];

public void init() {

Scanner input = new Scanner(System.in);

for (int i = 0; i < arr.length; i++) {

arr[i] = input.nextInt();

public int sum() {

int s = 0;

for (int i = 0; i < arr.length; i++) {

s += arr[i];

return s;

public int tb() {

return sum() / arr.length;

public int max() {

int max = -1000;

for (int x : arr) {

19
if (max < x) {

max = x;

return max;

public int min() {

int min = 1000;

for (int x : arr) {

if (min > x) {

min = x;

return min;

public boolean isNT(int x) {

if (x < 2) {

return false;

for (int i = 2; i <= Math.sqrt(x); i++) {

if (x % i == 0) {

return false;

20
}

return true;

public void soNT() {

for (int x : arr) {

if (isNT(x)) {

System.out.print(x + " ");

System.out.println("");

Câu 1
Bai 1: Viet chuong trinh tim UCLN, BCNN cua a, b

package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

21
Scanner input = new Scanner(System.in);

System.out.println("Nhap a: ");

int a = input.nextInt();

System.out.println("Nhap b: ");

int b = input.nextInt();

System.out.println("UCLN: " + UCLN(a, b));

System.out.println("BCNN: " + BCNN(a, b));

public static int UCLN(int a, int b) {

if (a == b) {

return a;

} else {

if (a > b) {

return UCLN(a - b, b);

} else {

return UCLN(a, b - a);

public static int BCNN(int a, int b) {

return (a * b) / UCLN(a, b);

22
Câu 2
Bai 2: Viet chuong trinh tinh tong cac chu so cua mot so nguyen

package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("Nhap so: ");

int n = input.nextInt();

System.out.println("Tong cac chu so cua " + n + " la: " + sum(n));

public static int sum(int n) {

int sum = 0;

while (n > 0) {

int d = n % 10;

sum += d;

n = n / 10;

return sum;

23
Câu 3
Bai 3: Viet chuong trinh phan tich mot so nguyen thanh cac thua so nguyen to

package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Nhap so: ");

int n = input.nextInt();

System.out.print(n + " = ");

thuaSo(n);

public static void thuaSo(int n) {

if (isNT(n)) {

System.out.println(n);

} else {

for (int i = 2; i <= Math.sqrt(n); i++) {

if (isNT(i)) {

if (n % i == 0) {

System.out.print(i + " * ");

thuaSo(n / i);

break;

24
}

public static boolean isNT(int n) {

if (n < 2) {

return false;

} else {

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

return false;

return true;

Câu 4
Bai 4: Viet chuong trinh liet ke tat ca cac so nguyen to nho hon n

package demo;

import java.util.Scanner;

25
public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Nhap so: ");

int n = input.nextInt();

System.out.print("Cac so nguyen to nho hon " + n + " la: ");

list(n);

public static void list(int n) {

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

if (isNT(i)) {

System.out.print(i + " ");

System.out.println();

public static boolean isNT(int n) {

if (n < 2) {

return false;

} else {

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

26
return false;

return true;

Câu 6
Bai 6: Viet chuong trinh tim so fibonacci thu n

package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.print("Ban muon tim so fibonacci thu may: ");

int n = scan.nextInt();

System.out.println("So fibonacci thu " + n + " la: " + fibo(n));

public static double fibo(int n) {

double f1 = 1, f0 = 1;

double tmp = 1;

27
int i = 1;

while (i < n) {

tmp = f0 + f1;

f0 = f1;

f1 = tmp;

i++;

return tmp;

Câu 7
Bai 7: Viet chuong trinh liet ke cac so nguyen to co 5 chu so co tong cac chu so bang s

package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.print("Nhap tong s = ");

int s = scan.nextInt();

System.out.print("Cac so nguyen to co tong cac cs = " + s + " la: ");

sumEqualsS(s);

28
public static void sumEqualsS(int s) {

for (int i = 10000; i <= 99999; i++) {

if (isNT(i) && sum(i) == s) {

System.out.print(i + " ");

System.out.println();

public static boolean isNT(int n) {

if (n < 2) {

return false;

} else {

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

return false;

return true;

public static int sum(int n) {

if (n < 10) {

29
return n;

int s = 0;

while (n > 0) {

s += n % 10;

n = n / 10;

return s;

Câu 9

package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Number num = null;

Scanner input = new Scanner(System.in);

while (true) {

System.out.println("1. Nhap so");

System.out.println("2. Liet ke cac uoc. So uoc");

System.out.println("3. Cac uoc la nguyen to");

30
System.out.println("0. Thoat");

System.out.print("Moi chon ");

int n = input.nextInt();

if (n == 0) {

break;

} else if (n == 1) {

System.out.print("n = ");

int n2 = input.nextInt();

num = new Number(n2);

} else if (n == 2) {

num.list();

} else if (n == 3) {

num.listNT();

} else {

System.out.println("So khong phu hop");

package demo;

public class Number {

31
private int n;

public Number(int n) {

this.n = n;

public void list() {

int s = 0;

System.out.print("Uoc so cua " + n + ": ");

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

if (i != (n / i)) {

System.out.print(i + " " + (n / i) + " ");

s += 2;

} else {

System.out.print(i + " ");

s++;

System.out.println();

System.out.println("So uoc cua " + n + ": " + s);

32
public void listNT() {

System.out.print("Uoc la nguyen to: ");

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

if (i != (n / i)) {

if (isNT(i)) {

System.out.print(i + " ");

if (isNT(n / i)) {

System.out.print((n / i) + " ");

} else {

if (isNT(i)) {

System.out.print(i + " ");

System.out.println();

private boolean isNT(int n) {

if (n < 2) {

return false;

} else {

33
for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

return false;

return true;

Câu 10
package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Nhap sai so: ");

double e = input.nextDouble();

System.out.println("PI = " + calcPi(e));

public static double calcPi(double e) {

34
int i = 0;

double s = 0;

while (e <= ((double) 1 / (2 * i + 1))) {

s += (Math.pow(-1, i)) * ((double) 1 / (2 * i + 1));

i++;

return 4 * s;

Câu 11
package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Nhap x = ");

double x = input.nextDouble();

System.out.println("sinx = " + sin(x));

public static double sin(double x) {

double s = 0;

35
int i = 0;

while (Math.pow(x, (2 * i + 1)) >= 0.001) {

s += (Math.pow(-1, i)) * (Math.pow(x, (2 * i + 1))) / (giaiThua(2 * i + 1));

i++;

return s;

public static double giaiThua(int n) {

if (n == 0 || n == 1) {

return 1;

return n * giaiThua(n - 1);

Câu 13:
Cau 13:

package demo;

public class Test {

public static void main(String[] args) {

for(int i=100000; i<=999999; i++){

if(isTN(i)) System.out.print(i+" ");

36
System.out.println();

public static boolean isTN(int n) {

String str = Integer.toString(n);

StringBuilder tmp = new StringBuilder(str);

String str2 = tmp.reverse().toString();

return str.equals(str2);

Câu 14:
package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("Nhap phan so thu nhat: ");

System.out.print("Tu so: ");

int tu = input.nextInt();

System.out.print("Mau so: ");

int mau = input.nextInt();

PhanSo p1 = new PhanSo(tu, mau);

37
System.out.println("Nhap phan so thu hai: ");

System.out.print("Tu so: ");

tu = input.nextInt();

System.out.print("Mau so: ");

mau = input.nextInt();

PhanSo p2 = new PhanSo(tu, mau);

p1.cong(p2);

p1.tru(p2);

p1.nhan(p2);

p1.chia(p2);

package demo;

public class PhanSo {

private int tu, mau;

public PhanSo(int tu, int mau) {

this.tu = tu;

this.mau = mau;

38
}

public int getTu() {

return tu;

public int getMau() {

return mau;

private int UCLN() {

int tu2 = Math.abs(tu), mau2 = Math.abs(mau);

while (tu2 != mau2) {

if (tu2 > mau2) {

tu2 = tu2 - mau2;

} else {

mau2 = mau2 - tu2;

return tu2;

private void toiGian() {

int u = UCLN();

tu = tu / u;

39
mau = mau / u;

public void cong(PhanSo p) {

int tuTong = this.tu * p.getMau() + p.getTu() * this.mau;

int mauTong = this.mau * p.getMau();

PhanSo tong = new PhanSo(tuTong, mauTong);

tong.toiGian();

System.out.println("Tong: " + tong.getTu() + "/" + tong.getMau());

public void tru(PhanSo p) {

int tuHieu = this.tu * p.getMau() - p.getTu() * this.mau;

int mauHieu = this.mau * p.getMau();

PhanSo hieu = new PhanSo(tuHieu, mauHieu);

hieu.toiGian();

System.out.println("Hieu: " + hieu.getTu() + "/" + hieu.getMau());

Câu 15:
package demo;

import java.util.Scanner;

public class Test {

40
public static void main(String[] args) {

Scanner in = new Scanner(System.in);

HoTen ht = new HoTen();

Doan d = new Doan();

while (true) {

System.out.println("1. Nhap ho ten");

System.out.println("2. Viet ra ho ten");

System.out.println("3. Nhap vao 1 doan");

System.out.println("4. Chuan hoa doan");

System.out.println("5. So cau, so tu");

System.out.println("0. Thoat");

System.out.print("Moi nhap: ");

int choose = in.nextInt();

switch (choose) {

case 1:

ht.nhap();

break;

case 2:

ht.xuat();

break;

case 3:

d.nhap();

break;

case 4:

41
d.displayChuanHoa();

break;

case 5:

d.soCauSoTu();

break;

case 0:

System.exit(0);

break;

default:

System.out.println("Nhap lai");

package demo;

import java.util.Scanner;

public class HoTen {

private String hoTen;

public void nhap() {

42
Scanner in = new Scanner(System.in);

System.out.print("Ho ten la: ");

hoTen = in.nextLine();

public void xuat() {

System.out.println(hoTen);

package demo;

import java.util.Scanner;

public class Doan {

private String para;

public void nhap() {

Scanner in = new Scanner(System.in);

System.out.print("Moi nhap 1 doan: ");

para = in.nextLine();

private String chuanHoaDau(String para, char dau) {

boolean check = true;

43
String out = "";

for (int i = 0; i < para.length(); i++) {

char c = para.charAt(i);

if (c == dau) {

check = true;

if (check == true && Character.isAlphabetic(c)) {

c = Character.toUpperCase(c);

check = false;

out = out + c;

return out;

private void chuanHoa() {

para = para.trim();

para = para.replaceAll(" \\.", "\\.");

para = para.replaceAll("\\.", "\\. ");

para = para.replaceAll(" \\,", "\\,");

para = para.replaceAll("\\,", "\\, ");

para = para.replaceAll("\\s+", " ");

para = chuanHoaDau(para, '.');

para = chuanHoaDau(para, '!');

para = chuanHoaDau(para, '?');

44
if (para.charAt(para.length() - 1) != '.') {

para = para + '.';

public void displayChuanHoa() {

chuanHoa();

System.out.println("Sau khi chuan hoa: " + para);

private void soCau() {

chuanHoa();

String[] str = para.split("\\.");

System.out.println("So cau la: " + (str.length - 1));

public void soCauSoTu() {

soCau();

String[] str = para.split(" ");

for (String x : str) {

System.out.println(x);

System.out.println("So tu la: " + (str.length - 1));

45
Bai 16:
package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

HinhTron ht = null;

while (true) {

System.out.println("1. Nhap ban kinh");

System.out.println("2. Chu vi");

System.out.println("3. Dien tich");

System.out.println("4. The tich");

System.out.println("0. Thoat");

System.out.print("Moi nhap: ");

int chon = Integer.parseInt(input.nextLine());

switch (chon) {

case 1:

System.out.print("Nhap r = ");

ht = new HinhTron(Double.parseDouble(input.nextLine()));

break;

case 2:

46
System.out.println("Chu vi: " + ht.chuVi());

break;

case 3:

System.out.println("Dien tich: " + ht.dienTich());

break;

case 4:

System.out.println("The tich: " + ht.theTich());

break;

case 0:

System.exit(0);

break;

default:

System.out.println("Nhap khong hop le");

package demo;

public class HinhTron {

private double r;

public HinhTron(double r) {

47
this.r = r;

public double chuVi() {

return 2 * Math.PI * r;

public double dienTich() {

return Math.PI * Math.pow(r, 2);

public double theTich() {

return ((double) 4 / 3) * Math.PI * Math.pow(r, 3);

Bài 18:
package demo;

import java.util.Scanner;

public class Test {

int n;

int[] a;

48
public static void main(String[] args) {

Test t = new Test();

t.Nhap();

t.Try(0);

public void Nhap() {

Scanner input = new Scanner(System.in);

System.out.print("Nhap n = ");

n = input.nextInt();

a = new int[n];

public void Try(int i) {

if (i == n) {//dieu kien dung

for (int x : a) {

System.out.print(x + " ");

System.out.println();

} else {

for (int j = 0; j <= 1; j++) {

a[i] = j;

Try(i + 1);//de quy

49
}

Bài 19:
package demo;

import java.util.Scanner;

public class Test {

int n;

int k;

int[] a;

boolean[] chuaxet;

public static void main(String[] args) {

Test t = new Test();

t.nhap();

t.Try(1);

public void nhap() {

50
Scanner input = new Scanner(System.in);

System.out.print("Nhap n = ");

n = input.nextInt();

while (n < 0) {

System.out.print("Nhap lai: ");

n = input.nextInt();

System.out.print("Nhap k = ");

k = input.nextInt();

while (k > n) {

System.out.print("Nhap lai: ");

k = input.nextInt();

a = new int[k + 1];

chuaxet = new boolean[n + 1];

public void Try(int i) {

if (i > k) {

for (int j = 1; j <= k; j++) {

System.out.print(a[j] + " ");

System.out.println();

51
} else {

for (int j = 1; j <= n; j++) {

if (chuaxet[j] == false) {

a[i] = j;

chuaxet[j] = true;

Try(i + 1);

chuaxet[j] = false;

Bài 20:
package demo;

import java.util.Scanner;

public class Test {

int n;

int[] a;

boolean[] chuaxet;

public static void main(String[] args) {

52
Test t = new Test();

t.nhap();

t.Try(1);

public void nhap() {

Scanner input = new Scanner(System.in);

System.out.print("Nhap n = ");

n = input.nextInt();

while (n < 0) {

System.out.print("Nhap lai: ");

n = input.nextInt();

a = new int[n + 1];

chuaxet = new boolean[n + 1];

public void Try(int i) {

if (i > n) {

for (int j = 1; j <= n; j++) {

System.out.print(a[j] + " ");

System.out.println();

} else {

for (int j = 1; j <= n; j++) {

53
if (chuaxet[j] == false) {

a[i] = j;

chuaxet[j] = true;

Try(i + 1);

chuaxet[j] = false;

Bài 21:
package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Nhap n = ");

int n = input.nextInt();

double[] a = new double[n + 1];

System.out.println("Nhap he so");

for (int i = n; i >= 0; i--) {

54
System.out.print("He so cua x^" + i + " = ");

a[i] = input.nextDouble();

System.out.print("Nhap x = ");

double x = input.nextDouble();

System.out.println("Gia tri cua da thuc: " + horner(a, n, x));

public static double horner(double[] a, int n, double x) {

double sum = a[n];

for (int i = n; i > 0; i--) {

sum = sum * x + a[i - 1];

return sum;

Bai 22
package demo;

public class Test {

public static void main(String[] args) {

Array arr = new Array();

55
arr.nhap();

arr.getC();

package demo;

import java.util.Scanner;

public class Array {

private double[] a;

private double[] b;

private double[] c;

public void nhap() {

Scanner input = new Scanner(System.in);

System.out.print("Nhap do dai mang a = ");

int m = input.nextInt();

a = new double[m];

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

System.out.print("a[" + i + "] = ");

a[i] = input.nextDouble();

System.out.print("Nhap do dai mang b = ");

56
int n = input.nextInt();

b = new double[n];

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

System.out.print("b[" + i + "] = ");

b[i] = input.nextDouble();

c = new double[m + n];

public void getC() {

int i = 0, j = 0, k = -1;

while (i < a.length && j < b.length) {

if (a[i] <= b[j]) {

c[++k] = a[i];

i++;

} else {

c[++k] = b[j];

j++;

if (i >= a.length) {

while (j < b.length) {

c[++k] = b[j];

j++;

57
}

if (j >= b.length) {

while (i < a.length) {

c[++k] = a[i];

i++;

System.out.print("mang c: ");

for (int l = 0; l < c.length; l++) {

System.out.print(c[l] + " ");

Bài 23:
package demo;

import java.util.Scanner;

public class Test {

double[] a;

58
public static void main(String[] args) {

Test t = new Test();

t.nhap();

t.list();

public void nhap() {

Scanner input = new Scanner(System.in);

System.out.print("Nhap chieu dai n = ");

int n = input.nextInt();

a = new double[n];

for (int i = 0; i < a.length; i++) {

System.out.print("a[" + i + "] = ");

a[i] = input.nextDouble();

public void list() {

System.out.print("Phan tu xuat hien 1 lan: ");

for (int i = 0; i < a.length; i++) {

boolean ok = true;

for (int j = 0; j < a.length; j++) {

if (i != j && a[i] == a[j]) {

ok = false;

59
break;

if (ok == true) {

System.out.print(a[i] + " ");

Bài 24:
package demo;

public class Test {

public static void main(String[] args) {

Day d = new Day();

d.nhap();

d.list();

package demo;

import java.util.Scanner;

60
public class Day {

private double[] a;

private boolean[] check;

public void nhap() {

Scanner input = new Scanner(System.in);

System.out.print("Nhap do dai n = ");

int n = input.nextInt();

a = new double[n];

check = new boolean[n];

for (int i = 0; i < a.length; i++) {

System.out.print("a[" + i + "] = ");

a[i] = input.nextDouble();

public void list() {

for (int i = 0; i < a.length; i++) {

int count = 1;

for (int j = i + 1; j < a.length; j++) {

if (check[i] == false && a[i] == a[j]) {

count++;

check[j] = true; //phan tu j da xet, lan sau khong xet nua

61
}

if (count > 2) {

break;

if (count == 2) {

System.out.print(a[i] + " ");

Bài 25:
package demo;

public class Test {

public static void main(String[] args) {

Day d = new Day();

d.nhap();

d.list();

62
Bài 26:
package demo;

public class Test {

public static void main(String[] args) {

Day d = new Day();

d.nhap();

d.sort();

package demo;

import java.util.Scanner;

public class Day {

private double[] a;

public void nhap() {

Scanner input = new Scanner(System.in);

System.out.print("Nhap n = ");

int n = input.nextInt();

a = new double[n];

63
for (int i = 0; i < a.length; i++) {

System.out.print("a[" + i + "] = ");

a[i] = input.nextDouble();

private int minIndex() {

double min = a[0];

int index = 0;

for (int i = 0; i < a.length; i++) {

if (min > a[i]) {

min = a[i];

index = i;

return index;

private double maxElement() {

double max = a[0];

for (int i = 0; i < a.length; i++) {

if (max < a[i]) {

max = a[i];

64
return max;

public void sort() {

System.out.println("Mang sau khi sap xep: ");

for (int i = 0; i < a.length; i++) {

int index = minIndex();

System.out.print(a[index] + " ");//in ra phan tu be nhat

a[index] = maxElement();//thay phan tu be nhat bang phan tu lon nhat, de in ra phan tu be


//nhat tiep theo

Bài 27
package demo;

public class Test {

public static void main(String[] args) {

Xau x = new Xau();

x.nhap();

x.soTu();

65
package demo;

import java.util.Scanner;

public class Xau {

private String s;

public void nhap() {

Scanner input = new Scanner(System.in);

System.out.print("Nhap xau: ");

s = input.nextLine();

private void chuanHoa() {

s = s.trim().replaceAll("\\s+", " ");

public void soTu() {

chuanHoa();

String[] str = s.split(" ");

System.out.println("So tu la: " + str.length);

66
Bài 28
package demo;

public class Test {

public static void main(String[] args) {

MaTran mt = new MaTran();

mt.nhap();

mt.indexMax();

mt.inNT();

mt.displaySort();

package demo;

import java.util.Scanner;

public class MaTran {

private int[][] a;

public void nhap() {

Scanner in = new Scanner(System.in);

67
System.out.print("Nhap so hang n = ");

int n = in.nextInt();

System.out.print("Nhap so cot m = ");

int m = in.nextInt();

a = new int[n][m];

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

System.out.print("a[" + i + "][" + j + "] = ");

a[i][j] = in.nextInt();

while (a[i][j] <= 0 || a[i][j] >= 100) {

System.out.println("Nhap lai(0<a[i][j]<100");

System.out.print("a[" + i + "][" + j + "] = ");

a[i][j] = in.nextInt();

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

System.out.print(a[i][j] + " ");

System.out.println();

68
private int maxElement() {

int max = a[0][0];

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

if (max < a[i][j]) {

max = a[i][j];

return max;

public void indexMax() {

int max = maxElement();

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

if (a[i][j] == max) {

System.out.println("Phan tu max = " + max + " o vi trỉ " + i + " " + j);

private boolean isNT(int n) {

69
if (n < 2) {

return false;

} else {

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

return false;

return true;

public void inNT() {

System.out.println("Hien thi cac so nguyen to");

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

if (isNT(a[i][j])) {

System.out.print(a[i][j] + " ");

} else {

System.out.print(0 + " ");

System.out.println();

70
private void sort(int[][] a, int cot) {

for (int i = a.length - 1; i > 0; i--) {

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

if (a[j][cot] > a[j + 1][cot]) {

int tmp = a[j][cot];

a[j][cot] = a[j + 1][cot];

a[j + 1][cot] = tmp;

public void displaySort() {

System.out.println("Sap xep theo cot");

for (int i = 0; i < a[0].length; i++) {

sort(a, i);

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

System.out.print(a[i][j] + " ");

System.out.println();

71
}

Bài 29:
package demo;

public class Test {

public static void main(String[] args) {

Number num = new Number();

num.list();

package demo;

public class Number {

private boolean isNT(int n) {

if (n < 2) {

return false;

} else {

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

return false;

72
}

return true;

private boolean isTN(int n) {

String str = Integer.toString(n);

StringBuilder sb = new StringBuilder(str);

sb = sb.reverse();

String str2 = "" + sb;

if (str.equals(str2)) {

return true;

} else {

return false;

private boolean digitIsNT(int n) {

while (n > 0) {

if (!isNT(n % 10)) {

return false;

} else {

n /= 10;

73
}

return true;

public void list() {

for (int i = 22222; i <= 7777777; i++) {

if (isNT(i) && isTN(i) && digitIsNT(i)) {

System.out.print(i + " ");

Bài 30
package demo;

public class Test {

public static void main(String[] args) {

Number num = new Number();

num.list();

package demo;

74
public class Number {

private boolean isNT(int n) {

if (n < 2) {

return false;

} else {

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

return false;

return true;

private boolean isTN(int n) {

String str1 = "" + n;

StringBuilder sb = new StringBuilder(str1);

sb = sb.reverse();

String str2 = "" + sb;

return str1.equals(str2);

private boolean sumNT(int n) {

75
int sum = 0;

while (n > 0) {

sum += n % 10;

n /= 10;

return isNT(sum);

public void list() {

for (int i = 1000000; i <= 9999999; i++) {

if (isNT(i) && isTN(i) && sumNT(i)) {

System.out.print(i + " ");

Bài 31
package demo;

public class Test {

public static void main(String[] args) {

Mang m = new Mang();

m.nhap();

76
m.displayMax();

m.displaySorted();

m.chen();

package demo;

import java.util.Scanner;

public class Mang {

private int[] a;

public void nhap() {

Scanner in = new Scanner(System.in);

System.out.print("Nhap do dai mang n = ");

int n = in.nextInt();

while (n <= 0 || n >= 100) {

System.out.print("Nhap lai: ");

n = in.nextInt();

a = new int[n + 1];

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

77
System.out.print("a[" + i + "] = ");

a[i] = in.nextInt();

private int maxElement() {

int max = 0;

for (int i = 1; i <= a.length - 1; i++) {

if (max < a[i]) {

max = a[i];

return max;

private int secondMax() {

int max2 = 0, max = maxElement();

for (int i = 1; i < a.length - 1; i++) {

if (max2 < a[i] && a[i] != max) {

max2 = a[i];

return max2;

78
public void displayMax() {

int max1 = maxElement(), max2 = secondMax();

for (int i = 1; i < a.length; i++) {

if (a[i] == max1) {

System.out.println("Phan tu lon nhat o vi tri " + i + " la: " + a[i]);

if (a[i] == max2) {

System.out.println("Phan tu lon thu 2 o vi tri " + i + " la: " + a[i]);

public void sort(int[] a, int begin, int end) {

for (int i = end - 1; i >= begin; i--) {

for (int j = begin; j < i; j++) {

if (a[j] < a[j + 1]) {

int tmp = a[j];

a[j] = a[j + 1];

a[j + 1] = tmp;

public void displaySorted() {

79
sort(a, 1, a.length);

System.out.println("Mang sau khi sap xep:");

for (int i = 1; i < a.length; i++) {

System.out.print(a[i] + " ");

public void chen() {

Scanner in = new Scanner(System.in);

System.out.print("Nhap so can chen: ");

int x = in.nextInt();

a[0] = x;

sort(a, 0, a.length);

System.out.println("Mang sau khi chen:");

for (int y : a) {

System.out.print(y + " ");

Bài 32
package demo;

public class Test{

public static void main(String[] args) {

MaTran mt = new MaTran();

80
mt.nhap();

mt.displayMax();

mt.inNT();

mt.bestRow();

package demo;

import java.util.Scanner;

public class MaTran {

private int[][] a;

public void nhap() {

Scanner in = new Scanner(System.in);

System.out.print("Nhap so hang n = ");

int n = in.nextInt();

System.out.print("Nhap so cot m = ");

int m = in.nextInt();

a = new int[n][m];

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

System.out.print("a[" + i + "][" + j + "] = ");

81
a[i][j] = in.nextInt();

while (a[i][j] <= 0 || a[i][j] >= 100) {

System.out.println("Nhap lai:");

System.out.print("a[" + i + "][" + j + "] = ");

a[i][j] = in.nextInt();

inMaTran();

private void inMaTran() {

for (int[] x : a) {

for (int y : x) {

System.out.print(y + " ");

System.out.println();

private int maxValue() {

int max = 0;

for (int[] x : a) {

for (int y : x) {

82
if (max < y) {

max = y;

return max;

public void displayMax() {

int max = maxValue();

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

if (max == a[i][j]) {

System.out.println("Gia tri max = " + max

+ " tai vi tri hang " + (i + 1) + " cot " + (j + 1));

private boolean isNT(int n) {

if (n < 2) {

return false;

} else {

for (int i = 2; i <= Math.sqrt(n); i++) {

83
if (n % i == 0) {

return false;

return true;

public void inNT() {

System.out.println("So nguyen to");

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

if (isNT(a[i][j])) {

System.out.print(a[i][j] + " ");

} else {

System.out.print("0 ");

System.out.println();

public void bestRow() {

int max = 0, index = -1;

for (int i = 0; i < a.length; i++) {

84
int count = 0;

for (int j = 0; j < a[i].length; j++) {

if (isNT(a[i][j])) {

count++;

if (max < count) {

max = count;

index = i;

System.out.println("Hang co nhieu nguyen to nhat la hang " + (index + 1) + " co " + max +
" nguyen to");

Bài 33
package demo;

public class Test{

public static void main(String[] args) {

DaThuc dt = new DaThuc();

dt.nhap();

dt.horner();

dt.daoHam();

dt.tongDaThuc();

85
}

package demo;

import java.util.Scanner;

public class DaThuc {

private double[] a;

private double x;

private Scanner in = new Scanner(System.in);

public void nhap() {

System.out.print("Nhap bac cua da thuc n = ");

int n = in.nextInt();

while (n <= 0 || n >= 20) {

System.out.print("Nhap lai n = ");

n = in.nextInt();

a = new double[n + 1];

for (int i = 0; i < a.length; i++) {

System.out.print("he so cua x^" + i + "la: ");

a[i] = in.nextDouble();

86
inDaThuc(a, n);

System.out.print("\nNhap x = ");

x = in.nextDouble();

private void inDaThuc(double[] a, int n) {

for (int i = n; i > 0; i--) {

System.out.print(a[i] + "x^" + i + " + ");

System.out.print(a[0]);

public void horner() {

double p = a[a.length - 1];

for (int i = a.length - 1; i > 0; i--) {

p = p * x + a[i - 1];

System.out.println("Gia tri cua da thuc: " + p);

public void daoHam() {

double[] dh = new double[a.length - 1];

for (int i = a.length - 1; i > 0; i--) {

dh[i - 1] = i * a[i];

87
}

System.out.println("Dao ham cua da thuc");

inDaThuc(dh, dh.length - 1);

public void tongDaThuc() {

double[] b;

System.out.print("\nNhap bac dat thuc m = ");

int m = in.nextInt();

b = new double[m + 1];

for (int i = 0; i < b.length; i++) {

System.out.print("He so x^" + i + " = ");

b[i] = in.nextDouble();

inDaThuc(b, b.length - 1);

if (m > a.length - 1) {

for (int i = 0; i < a.length; i++) {

b[i] = b[i] + a[i];

System.out.println("\nTong da thuc");

inDaThuc(b, b.length - 1);

} else {

for (int i = 0; i < b.length; i++) {

a[i] += b[i];

88
System.out.println("\nTong da thuc");

inDaThuc(a, a.length - 1);

Bài 34
package demo;

public class Test{

public static void main(String[] args) {

Mang m = new Mang();

m.nhap();

m.findMax();

m.displaySort();

m.chen();

package demo;

import java.util.Scanner;

public class Mang {

89
private int[] a;

private Scanner in = new Scanner(System.in);

public void nhap() {

System.out.print("Nhap do dai mang n = ");

int n = in.nextInt();

while (n <= 0 || n >= 100) {

System.out.print("Nhap lai n = ");

n = in.nextInt();

a = new int[n + 1];

for (int i = 1; i < a.length; i++) {

System.out.print("a[" + i + "] = ");

a[i] = in.nextInt();

displayMang(1, a.length);

private void displayMang(int begin, int end) {

for (int i = begin; i < end; i++) {

System.out.print(a[i] + " ");

System.out.println();

90
private int max() {

int max = 0;

for (int i = 1; i < a.length; i++) {

if (max < a[i]) {

max = a[i];

return max;

private int secondMax() {

int max = max(), max2 = 0;

for (int i = 1; i < a.length; i++) {

if (max2 < a[i] && a[i] != max) {

max2 = a[i];

return max2;

public void findMax() {

int max = max();

int max2 = secondMax();

for (int i = 1; i < a.length; i++) {

if (a[i] == max) {

91
System.out.println("Gia tri max la " + max + " o vi tri " + i);

if (a[i] == max2) {

System.out.println("Gia tri max thu 2 la " + max2 + " o vi tri " + i);

private void sort(int begin, int end) {

for (int i = end - 1; i >= begin; i--) {

for (int j = begin; j < i; j++) {

if (a[j] < a[j + 1]) {

int tmp = a[j];

a[j] = a[j + 1];

a[j + 1] = tmp;

public void displaySort() {

sort(1, a.length);

System.out.println("Mang sau khi sap xep");

displayMang(1, a.length);

92
public void chen() {

System.out.println("Nhap x = ");

a[0] = in.nextInt();

sort(0, a.length);

System.out.println("Mang sau khi chen");

displayMang(0, a.length);

Bài 35
package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

System.out.print("Nhap xau: ");

String s = in.nextLine();

System.out.println("Chuan hoa: " + chuanHoaChuHoa(s));

93
public static String chuanHoaSpace(String s) {

s = s.trim().replaceAll("\\s+", " ");

return s;

public static String chuanHoaChuHoa(String s) {

s = chuanHoaSpace(s);//s luc nay da duoc chuan hoa dau cach

String[] str = s.split(" ");

s = "";//cho s ve rong

for (int i = 0; i < str.length; i++) {

String tmp = "";//bien nay de lu cac tu

for (int j = 0; j < str[i].length(); j++) {//lap qua ca chu trong mot tu

if (j == 0) {// chu dau tien cua tu

char c = Character.toUpperCase(str[i].charAt(j));//viet hoa chu dau tien

tmp += c;//nap vao tmp

} else {

char c = Character.toLowerCase(str[i].charAt(j));//cac chu sau viet thuong

tmp += c;//nap vao tmp

s = s + " " + tmp;//nap cac tu vao s cach nhau boi dau cach

return s;

94
Bài 36:
package demo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

System.out.print("Nhap chuoi: ");

String s = in.nextLine();

findMax(s);

public static String chuanHoa(String s) {

s = s.trim().replaceAll("\\s+", " ");

return s;

public static String longestWord(String s) {

s = chuanHoa(s);

String[] str = s.split(" ");

String max = "";

for (int i = 0; i < str.length; i++) {

if (max.length() < str[i].length()) {

95
max = str[i];

return max;

public static void findMax(String s) {

String max = longestWord(s);

s = chuanHoa(s);//phai chuan hoa vi chuan hoa trong longesWord khong lam thay doi s

String[] str = s.split(" ");

for (int i = 0; i < str.length; i++) {

if (str[i].equals(max)) {

System.out.println("Tu dai nhat la " + max + " o vi tri " + (i + 1));

break;

Bài 37
package demo;

import java.util.Scanner;

public class Test {

96
public static void main(String[] args) {

Scanner in = new Scanner(System.in);

System.out.print("Nhap xau: ");

String name = in.nextLine();

System.out.println("Xau sau khi thay doi: " + change(name));

public static String change(String s) {

String output = "";

String[] str = s.split(" ");

output = output + " " + str[str.length - 1];

output = output + " " + str[0];

output = output + " " + str[str.length - 2];

return output;

Bài 38

package demo;

import java.util.Scanner;

public class Test {

97
public static void main(String[] args) {

DaThuc dt = new DaThuc();

dt.nhap();

System.out.println("Gia tri P(x) = " + dt.giaTri(dt.getA()));

System.out.println("Gia tri Q(x) = " + dt.giaTri(dt.getB()));

Scanner in = new Scanner(System.in);

System.out.print("Nhap bac dao ham n = ");

int n = in.nextInt();

dt.daoHam(dt.getA(), n);

dt.daoHam(dt.getB(), n);

dt.cong();

dt.tru();

dt.chia();

package demo;

import java.util.Scanner;

public class DaThuc {

private double[] a;

98
private double[] b;

private Scanner in = new Scanner(System.in);

public void nhap() {

System.out.print("Nhap bac cua da thuc P(x) = ");

int n = in.nextInt();

a = new double[n + 1];

System.out.println("Nhap he so cho P(x)");

heSo(a);

System.out.print("P(x) = ");

inDaThuc(a);

System.out.print("Nhap bac cua da thuc Q(x) = ");

int m = in.nextInt();

b = new double[m + 1];

System.out.println("Nhap he so cho Q(x)");

heSo(b);

System.out.print("Q(x) = ");

inDaThuc(b);

public double[] getA() {

return a;

public double[] getB() {

99
return b;

private void heSo(double[] a) {

for (int i = a.length - 1; i >= 0; i--) {

System.out.print("He so cua x^" + i + " la: ");

a[i] = in.nextDouble();

private void inDaThuc(double[] a) {

for (int i = a.length - 1; i > 0; i--) {

System.out.print(a[i] + "x^" + i + " + ");

System.out.println(a[0]);

public double giaTri(double[] a) {

System.out.print("Nhap x0 = ");

double x = in.nextDouble();

double sum = 0;

for (int i = 0; i < a.length; i++) {

sum += a[i] * Math.pow(x, i);

100
return sum;

public void daoHam(double[] a, int n) {

if (n == 0) {

inDaThuc(a);

} else {

double[] tmp = new double[a.length - 1];

for (int i = a.length - 1; i > 0; i--) {

tmp[i - 1] = i * a[i];

daoHam(tmp, n - 1);

public void cong() {

double[] tong;

if (a.length > b.length) {

tong = new double[a.length];

for (int i = 0; i < b.length; i++) {

tong[i] = a[i] + b[i];

for (int i = b.length; i < a.length; i++) {

tong[i] = a[i];

101
} else {

tong = new double[b.length];

for (int i = 0; i < a.length; i++) {

tong[i] = a[i] + b[i];

for (int i = a.length; i < b.length; i++) {

tong[i] = b[i];

System.out.println("Tong hai da thuc");

inDaThuc(tong);

public void tru() {

double[] tong;

if (a.length > b.length) {

tong = new double[a.length];

for (int i = 0; i < b.length; i++) {

tong[i] = a[i] - b[i];

for (int i = b.length; i < a.length; i++) {

tong[i] = a[i];

} else {

tong = new double[b.length];

102
for (int i = 0; i < a.length; i++) {

tong[i] = a[i] - b[i];

for (int i = a.length; i < b.length; i++) {

tong[i] = b[i];

System.out.println("Hieu hai da thuc");

inDaThuc(tong);

public void chia() {

double[] tmp = new double[a.length];

for (int i = 0; i < tmp.length; i++) {

tmp[i] = a[i];

double[] thuong = new double[tmp.length - b.length + 1];

double[] du = null;

int j = 1;

for (int i = thuong.length - 1; i >= 0; i--) {

thuong[i] = tmp[tmp.length - j] / b[b.length - 1];

if (i == 0) {

break;

j++;

103
tmp[tmp.length - j] = tmp[tmp.length - j] - thuong[i] * b[b.length - j];

System.out.println("Thuong la: ");

inDaThuc(thuong);

tmp = new double[a.length];

for (int i = 0; i < tmp.length; i++) {

tmp[i] = a[i];

int i = thuong.length - 1;

while (i >= 0) {

du = new double[tmp.length - 1];

for (int k = du.length - 1; k >= 0; k--) {

if ((k - i) >= 0) {

du[k] = tmp[k] - (thuong[i] * b[k - i]);

} else {

du[k] = tmp[k];

i--;

tmp = du;

if (i < 0) {

break;

104
System.out.println("Da thuc du");

inDaThuc(du);

Bài 39:
package demo;

public class Test {

public static void main(String[] args) {

MaTran mt = new MaTran();

mt.nhap();

mt.findMaxHang();

mt.findMaxCot();

mt.findMaxCheo();

mt.inChuyenVi();

System.out.println("Dinh thuc ma tran " + mt.det(mt.getA()));

mt.inNghichDao();

package demo;

import java.util.Scanner;

105
public class MaTran {

private int[][] a;

private Scanner in = new Scanner(System.in);

public void nhap() {

System.out.print("Nhap n = ");

int n = in.nextInt();

a = new int[n][n];

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

System.out.print("a[" + i + "][" + j + "] = ");

a[i][j] = in.nextInt();

inMaTran(a);

public int[][] getA() {

return a;

private void inMaTran(int[][] a) {

106
for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

System.out.print(a[i][j] + " ");

System.out.println();

private int sumHang(int i) {

int sum = 0;

for (int j = 0; j < a[i].length; j++) {

sum += a[i][j];

return sum;

private int sumCot(int i) {

int sum = 0;

for (int j = 0; j < a.length; j++) {

sum += a[j][i];

return sum;

private int maxHang() {

107
int max = sumHang(0);

for (int i = 1; i < a.length; i++) {

int sum = sumHang(i);

if (max < sum) {

max = sum;

return max;

private int maxCot() {

int max = sumCot(0);

for (int i = 1; i < a[0].length; i++) {

int sum = sumCot(i);

if (max < sum) {

max = sum;

return max;

public void findMaxHang() {

int max = maxHang();

for (int i = 0; i < a.length; i++) {

if (sumHang(i) == max) {

108
System.out.println("Hang co tong max la hang " + (i + 1));

public void findMaxCot() {

int max = maxCot();

for (int i = 0; i < a[0].length; i++) {

if (sumCot(i) == max) {

System.out.println("Cot co tong max la cot " + (i + 1));

public void findMaxCheo() {

int cheoChinh = 0;

int cheoPhu = 0;

for (int i = 0; i < a.length; i++) {

cheoChinh += a[i][i];

int j = a.length - 1;

for (int i = 0; i < a.length; i++) {

cheoPhu += a[i][j];

j--;

109
}

if (cheoChinh > cheoPhu) {

System.out.println("Cheo chinh lon nhat");

} else if (cheoChinh < cheoPhu) {

System.out.println("Cheo phu lon nhat");

} else {

System.out.println("Hai duong cheo bang nhau");

private int[][] maTranCV() {

int[][] cv = new int[a.length][a.length];

for (int i = 0; i < cv.length; i++) {

for (int j = 0; j < cv.length; j++) {

cv[i][j] = a[j][i];

return cv;

public void inChuyenVi() {

System.out.println("Ma tran chuyen vi");

inMaTran(maTranCV());

110
private int sign(int i) {

if (i % 2 == 0) {

return 1;

} else {

return -1;

public int det(int[][] a) {

if (a.length < 2) {

return -1;

} else if (a.length == 2) {

return a[0][0] * a[1][1] - a[0][1] * a[1][0];

} else {

int det = 0;

int[][] sub = new int[a.length - 1][a.length - 1];

int m = 0, n = 0;

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a.length; j++) {

for (int k = 0; k < a.length; k++) {

if (j != 0 && k != i) {

sub[m][n] = a[j][k];

n++;

111
}

n = 0;

if (j != 0) {

m++;

m = 0;

det += sign(i) * a[0][i] * det(sub);

return det;

private int sig(int i, int j) {

if ((i + j) % 2 == 0) {

return 1;

} else {

return -1;

private int[][] maTranND() {

if (det(a) == 0) {

return null;

112
int[][] cv = maTranCV();//tim ma tran chuyen vi

int[][] nd = new int[cv.length][cv.length];//luu ma tran nghich dao

int m = 0, n = 0;

for (int i = 0; i < nd.length; i++) {

for (int j = 0; j < nd.length; j++) {

int[][] tmp = new int[nd.length - 1][nd.length - 1];

for (int l = 0; l < cv.length; l++) {

for (int k = 0; k < cv.length; k++) {

if (l != i && k != j) {

tmp[m][n] = cv[l][k];

n++;

n = 0;

if (l != i) {

m++;

m = 0;

nd[i][j] = sig(i, j) * det(tmp);

return nd;

113
public void inNghichDao() {

int[][] nd = maTranND();

if (nd == null) {

System.out.println("Khong co ma tran nghich dao");

} else {

System.out.println("Ma tran nghich dao");

inMaTran(nd);

114

You might also like