Saya mencoba menggunakan loop sementara untuk menampilkan hasil beberapa perhitungan.

Setiap iterasi melalui loop membagi dua angka, menambah satu angka dua kali, menyimpan hasilnya dalam daftar array, dan seharusnya menjumlahkan semua elemen dalam daftar array.

Namun, hasil penjumlahan saya salah dan sepertinya saya tidak tahu mengapa. Saya seharusnya mendapatkan 1956.9272 tetapi menampilkan 73.3576, tahu apa yang saya lakukan salah?

Berikut kode saya:

import java.util.ArrayList;

public class testtest {

    public static void main(String[] args) {
        
        
        // Initialize variables
         double num1 = 1;
         double num2 = 3;
         double sum = 0;
         
        //  A new array list is created
        ArrayList<Double> myCalc = new ArrayList<Double>(); 

         // While loop is started if num2 is lass than 99
         while (num2 <= 99) {
             
             //Divides 1 by num2
              double answer = num1 / num2;
             
             // Adds the result to the array list
              myCalc.add(answer);
             
             // Twice increments num2, which is the denominator
              ++num2;
              ++num2;
              
              // For loop iterates through each element in the array list
              for (Double result : myCalc) {
                  
                  // Sums all the elements in the array list
                  sum += result;
              }
                          
         }
         
         // Displays the results of adding the array list elements together
        System.out.printf("%.4f", sum);
        
            
    }
}
0
Andrew 17 Juni 2021, 05:43

1 menjawab

Jawaban Terbaik
    double n1 = 1, n2 = 3, result, sum = 0;     
    ArrayList<Double> list = new ArrayList<>();
    
    while( n2 <= 99) {
        result = n1/n2;
        list.add(result);
        n2 += 2;
    }
    
    for(double temp: list)
        sum = sum + temp;
    
    System.out.println(sum); //1.9377748484749076

Jika Anda memasukkan loop for ke dalam saat Anda mendapatkan

double n1 = 1, n2 = 3, result, sum = 0;     
    ArrayList<Double> list = new ArrayList<>();
    
    while( n2 <= 99) {
        result = n1/n2;
        list.add(result);
        n2 += 2;
            
        for(double temp: list)
           sum = sum + temp;
    }
    System.out.println(sum); //73.35762984798366 
0
laksys 17 Juni 2021, 04:26