01/10/2018, 00:59

Trong java không thể hoán vị 2 số?

chào mọi người, em muốn hỏi là trong java mình không thể viết hàm hoán vị 2 số trực tiếp mà chỉ có cách là đặt 2 giá trị đó vào mảng và đưa mảng vào hàm hoán vị? cái này là đúng hay sai? cảm ơn mọi người ^^

Trần Hoàn viết 03:11 ngày 01/10/2018

Hàm hoán vị của bạn sai rồi kìa? Hàm như thế thì HoanVi(a,b) = 2(a+b), sau khi chạy hàm thì a = 2(a+b) và b = a+b.

Có 2 cách viết thường dùng:
void HoanVi(int a, int b)
{
a=a+b;
b=a-b;
a=a-b;
}
Cách trên có thể gây tràn bộ nhớ nếu a+b vượt ngoài phạm vi của kiểu dữ liệu int. Cách thư 2 mình hay dùng:
void HoanVi(int a, int b)
{
int TrungGian=a;
a=b;
b=TrungGian;
}

Vũ Trần viết 03:14 ngày 01/10/2018

à mình post nhầm hình @@,sr bạn, nhưng mà mình đã thử test theo mọi cách vẫn không được

viết 03:15 ngày 01/10/2018

em muốn hỏi là trong java mình không thể viết hàm hoán vị 2 số trực tiếp mà chỉ có cách là đặt 2 giá trị đó vào mảng và đưa mảng vào hàm hoán vị?

đúng

còn cái code hoán vị ở dưới thì bỏ đi

Nguyen Ca viết 03:07 ngày 01/10/2018

Trong java là reference by value, với lại đang dùng primitve type nên nó luôn là pass by value nên không hoán vị được đâu.

Vũ Trần viết 03:12 ngày 01/10/2018

cảm ơn mọi người nhiều

Bài liên quan
0