Minggu, 23 Oktober 2011

Program mencari bilangan n dari bentuk n^3 < nilaiMaksimal

Misalkan kamu disuruh mencari bilangan terbesar n dari n pangkat 3 yang kurang dari bilangan tertentu. Misalnya berapa nilai n untuk n pangkat 3 yang kurang dari 120000?

Hal penting yang perlu dilakukan adalah membandingkan nilai n pangkat 3 (n^3) dengan nilai maksimalnya. Periksa apakah sudah melewati nilai maksimal yang diinginkan, misalnya saja nilai maksimalnya adalah 120000.

Kalau dijabarkan, logikanya seperti ini:


Nah karenya syaratnya n^3 < 120000, maka bilangan n adalah 49 dimana 49 x 49 x 49 (49^3) adalah 117649 dan 117649 < 120000. Jadi bisa disimpulkan bahwa bilangan n = 49 adalah bilangan terbesar dari bentuk n^3 yang hasilnya kurang dari 120000. Bila hitungan ini terlalu besar nilainya, kamu bisa dengan mudah menurunkan nilai maksimalnya, misalnya 64. Sehingga bilangan terbesar dari bentuk n^3 yang hasilnya kurang dari 64 adalah n = 3. Kalau n = 4 maka n^3 = 4^3 = 64 sehingga syaratnya tidak terpenuhi karena program meminta n^3 yang kurang dari 64. Untuk melakukan itu semua, diperlukan sebuah perulangan. Kamu bisa pakai perulangan jenis while. Berikut potongan kodenya:

while (n3 < maks) {
 n++;
 n3 = n * n * n;
}

System.out.println("\nn = " + (n-1));
Terlihat jelas bahwa perulangan hanya akan berhenti jika n3 lebih besar dari maks. Nilai n akan dinaikkan satu tiap perulangannya kemudian nilai tersebut dikalikan sampai tiga kali (dipangkatkan 3) dan hasilnya disimpan di variabel n3. Setelah kondisi logika n3 < maks bernilai salah maka perulangan berhenti dan akan langsung menampilkan nilai n ke layar. Berikut kode selengkapnya dalam bahasa pemrograman Java:
/*
Program mendapatkan nilai n terbesar dari bilangan n pangkat 3 sebelum nilai tertentu.

Ambil bilangan n terbesar dari bentuk n^3 < maks.

File: CSS.java
Compile: javac CSS.java
Run: CSS.java

(C) 2011 Computer Science Solution (CSS)
*/

public class CSS {
 public static void main(String[] args) {
  int n = 1;
  int n3 = n * n * n;
  int maks = 120000;
  
  while (n3 < maks) {
   n++;
   n3 = n * n * n;
  }
  
  System.out.println("\nn = " + n);
 }
}

(C) 2011 Computer Science Solution (CSS)

Tidak ada komentar:

Posting Komentar