em gặp chút khó khăn với bài toán:
i là tích của các phần tử trong mảng ngoại trừ giá trị ở vị trí thứ i.
vị dụ a[1,2,3]=>[6,3,2]
em chưa rõ chỗ khi duyệt vị trí i. e sẽ loại bỏ giá trí ở vị trí đó ra khỏi mảng ntn.
Cần hỗ trợ về giải quyết mảng
Mình có ý tưởng thế này:
B1: Bạn tính tích của tất cả các phần tử trong mảng.
B2: Duyệt mảng 1 lần nữa, rồi lấy cái tích đó chia cho phần tử thì sẽ ra kết quả của bạn 
Với ví dụ trên [1,2,3] ==> Tích tổng là 1*2*3 = 6
Sau đó thì duyệt mảng:
- i = 0 ==> index = 6/1 = 6
- i = 1 ==> index = 6/2 = 3
- i = 2 ==> index = 6/3 = 2
==> Kết quả [6,2,3]
3 Likes
cảm ơn ạ… thế mà e ko nghĩ ra nhỉ… đầu óc lú quá
1 Like
Java Code
import java.util.Arrays;
public class TestArray {
public static void main(String[] args) {
int[] arrInt = {1, 2, 3};
int total = 1;
int length = arrInt.length;
for(int i = 0; i < length; ++i){
total *= arrInt[i];
}
for(int i = 0; i < length; ++i){
arrInt[i] = total / arrInt[i];
}
System.out.println(Arrays.toString(arrInt));
}
}
Java Code phiên bản dành cho máy khoẻ
int[] multipliedArrayFrom(int[] input)
{
if(input.length <= 1)
return input;
int[] output = new int[input.length];
for (int i = 0; i < output.length; i += 1)
output[i] = 1;
for (int i = 0; i < output.length; i += 1)
for (int j = 0; j < output.length; j += 1)
if (i != j)
output[i] *= input[j];
return output;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?