2016-02-01 4 views
-3

Предположим, вы находитесь в базе 10.Как разделить 2 массива int?

Вы хотите разделить int [] a = new int [] {9, 9};

by int [] b = new int [] {1, 0, 1};

Каждый элемент в обоих массивах содержит одну цифру.

На бумаге это будет выглядеть как 99/101, что даст вам повторяющееся десятичное число.

Как это сделать без преобразования или объединения любого массива в int?

+0

Вы можете использовать '' Strings' и parseDouble() '... – brso05

+0

И вы бы очень много нужно поместить его в числовое значение, чтобы сделать расчет с методом. –

+1

Почему вы не можете объединить массивы в int? Это домашняя свалка? – Spencer4134

ответ

0
public double divideArrayContent(int[] a, int[] b) { 
     int aT = 0; 
     int bT = 0; 
     for(int i = 0; i < a.length; i++) { 
      aT += a[a.length - (i + 1)] * 10^i; 
     } 
     for(int i = 0; i < b.length; i++) { 
      bT += b[b.length - (i + 1)] * 10^i; 
     } 
     return aT/bT; 
    } 

Это должно работать, но я не проверял его.

1

Если массив длинный, вы можете использовать BigInteger.

Прежде всего, преобразование массива в строку и построение BigInteger с использованием строки. Затем выполните арифметику с использованием двух BigInteger.

Здесь код, который следует преобразовать массив в BigInteger.

public BigInteger convert2BigInteger(int[] arr) { 
    StringBuilder sb = new StringBuilder(); 
    for(int v : arr) { 
     sb.append(v); 
    } 
    return new BigInteger(sb.toString()); 
} 
0
int []a = {1,2,3,4,5,6}; 
int c = 1; 
int result = 0; 
for(int i = a.length-1; i >= 0; i--){ 
    if(i == a.length-1){ 
     result += a[i]; 
    }else{ 
     c = c * 10; 
     result += a[i] * c; 
    } 
} 
Смежные вопросы