42 bài tập Java cơ bản(có đáp án tham khảo).

0972302012

New Member
2/1/14
5
0
1
25
Tình hình là bjan vẫn ko hiểu ý mình, mình nói post cái log ghi lỗi ra đây, tức là cái mô tả lỗi ak chứ chỉ có cái hình để lỗi như vậy, rồi object cachamchung đó ở đâu ra mình cũng chẳng hiểu.
đây là đề bài của đoạn mã đó:
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ạn viết lại đoạn mã lời giải bài này giúp mình với
 

Vinh Phat

New Member
28/6/17
2
0
1
25
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.println((n%base));
}
Có anh nào hiểu phần code này không, nó hoạt động ra sao.
if(n % base > 9) System.out.printf("%c",n%base+55);
%c là gì, tại sao lấy phần dư của n%base+55
ai biết giải thích cho em với
Em cám ơn nhiều

 

vhonline

New Member
1/7/20
3
0
1
Vietnam
PHP:
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);
    }

}
mọi người cho mình hỏi bài này dùng cachamchung.checkSNT(i) như thế nào vậy.
Ở đây có thể hiểu là cachamchung là 1 Object của 1 class và checkSNT(i) là method được định nghĩa trong class đó. Trong source code của bạn mình không thấy import class nào khác và cũng không có khai báo object cachamchung nào cả, nên khi chạy nó không hiểu cachamchung là gì nên lỗi là đúng rồi.
 

vhonline

New Member
1/7/20
3
0
1
Vietnam
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.println((n%base));
}
Có anh nào hiểu phần code này không, nó hoạt động ra sao.
if(n % base > 9) System.out.printf("%c",n%base+55);
%c là gì, tại sao lấy phần dư của n%base+55
ai biết giải thích cho em với
Em cám ơn nhiều
Đây gọi là hàm đệ quy, hàm gọi hàm.
Dòng if(n % base > 9) System.out.printf("%c",n%base+55); có ý nghĩa là nếu phần dư n/base > 9 thì sẽ hiển thị chữ, %c là xuất kiểu char bắt đầu từ A (trong bảng mã ASCII là 65).