Topic describes
Answer key
May be better to directly solve, first 1024 minus the input n, get the total amount of money to change, and then take a look at how many 64,16,4 and 1, respectively.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int input = in.nextInt(); int res = countCharges(input); System.out.println(res); } } public static int countCharges(int input) { if (input <= 0 || input >= 1024) return 0; int money = 1024 - input; int count64 = money / 64; int temp1 = money - (count64 * 64); int count16 = temp1 / 16; int temp2 = temp1 - (count16 * 16); int count4 = temp2 / 4; int temp3 = temp2 - (count4 * 4); int count1 = temp3 / 1; return count64 + count16 + count4 + count1; }}Copy the code