+ 3

Loan Calculator

import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double amount = scanner.nextInt(); //your code goes here for(double i =1; i<=6 ; i++){ amount -=(amount/10); } System.out.println(Math.round(amount)); } } ___________________ Hello, i donâ€˜t know why this works just for two cases. Did anyone have an idea? I also tried it with Math.ceil() or turned double into Int but i think the amount must be rounded. Thanks!

9th Jan 2021, 3:47 PM
Ã–zge Nazli
+ 6
Use 90% for 6 months to find the balance. 4 lines of code added. https://code.sololearn.com/cp6GXE4Rc84v/?ref=app If you are paying 10% every month, one way is to find the 10% and then use your total minus the 10% paid to get the balance. The other way, is to find the 90% so you don't have to minus. If you have 100 and you paid 10%, Method 1: 100 - (100 * 10%) = 90 Method 2: 100 * 90% = 90 The "i=0" is used for looping. It will loop from 0 until 5 (< 6), which is 6 times. Finally prints out amount.
16th Jan 2021, 4:25 AM
Lam Wei Li
+ 5
I tried with Math.ceil() and it works. import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int amount = scanner.nextInt(); //my code start here for (int i = 0; i < 6; i++){ amount -=(int)Math.ceil(amount*0.1); } System.out.print(amount); } }
9th Jan 2021, 4:12 PM
+ 4
9th Jan 2021, 4:08 PM
JaScript
+ 2
mert2, in your original code, everything is in Integer. amount = amount - (amount / 100 * 10); If amount is 150: 1) amount = 150 - (150 / 100 * 10) 2) amount = 150 - (1 * 10) 3) amount = 140 (instead of 135) Note in step 2, 150 / 100 = 1 due to Integer flooring, which truncated the decimal. You can do multiplication first than division to bypass this: 1) 150 * 10 / 100 2) 1500 / 100 3) 15 But this will only work until certain extent. If the number is 15 then it will no longer work. 1) 15 * 10 / 100 2) 150 / 100 3) 1 (instead of 1.5) For second code, it is in Double. amount -= amount * 0.10; If amount is 150: 1) amount = 150 - 150 * 0.10 2) amount = 150 - 15 3) amount = 135
31st Oct 2021, 4:29 AM
Lam Wei Li
+ 1
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int amount = scanner.nextInt(); //your code goes here for (int x = 0; x < 3; x++) { amount = amount - (amount / 100 * 10); } System.out.println(amount); } } So the above was my original code, which worked for the first two cases. and then i have tried the answer given on this topic which was for(int x = 3; x < 6; x++) { amount -= amount * 0.10; } System.out.println(amount); my current question is that why my code didn't work for the others. i mean they are the same thing. what is the difference here? just asking to understand.
30th Oct 2021, 6:41 PM
mert2
0
You cannot use an integer input for double
16th Jul 2021, 4:53 PM
George Mathew
0
Maybe this is a dumb question, but... Is it correct to use the switch loop instead of the for one to solve this problem?
4th Nov 2021, 2:09 PM
roby
0
I solved it also with the switch loop. The code is longer and probably less elegant, but it is possible. This is my first time with Java
4th Nov 2021, 2:50 PM
roby
0
{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int amount = scanner.nextInt(); //your code goes here for (int i = 0; i <3; i++) amount = amount * 90 / 100; System.out.println(amount); } }
29th Oct 2022, 4:14 PM
SUSHIL GAVIT
8th Mar 2021, 9:45 PM
AKHY EL MAHEDI
1
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int amount = scanner.nextInt(); //your code goes here for(int x = 3; x < 6; x++) { amount -= amount * 0.10; } System.out.println(amount); } }
3rd May 2021, 1:07 PM
Elias Alemu