import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class row{
public static void main(String[] args) {
Map<String, BigDecimal> map = new HashMap<String, BigDecimal>();
map.put("0",new BigDecimal(0));
map.put("1",new BigDecimal(1));
map.put("2",new BigDecimal(4));
map.put("3",new BigDecimal(9));
map.put("4",new BigDecimal(16));
map.put("5",new BigDecimal(25));
map.put("6",new BigDecimal(36));
map.put("7",new BigDecimal(49));
map.put("8",new BigDecimal(64));
map.put("9",new BigDecimal(81));
Scanner sc = new Scanner(System.in);
BigDecimal k = sc.nextBigDecimal();
BigDecimal a = sc.nextBigDecimal();
BigDecimal b = sc.nextBigDecimal();
BigDecimal sum = new BigDecimal(0);
sc.close();
BigDecimal max = new BigDecimal(10).pow(18);
if ((a.compareTo(BigDecimal.ONE) < 0)
|| (a.compareTo(k) < 0)
|| (k.compareTo(b) > 0)
|| (b.compareTo(max) > 0)){
System.out.println(0);
return;
}
for (BigDecimal t=b.divideToIntegralValue(k).multiply(k);t.compareTo(a)>=0;t=t.subtract(k)){
String s = t.toPlainString();
BigDecimal localsum = new BigDecimal(0);
for (int i=0;i<s.length();i++){
localsum=localsum.add(map.get(s.substring(i, i+1)));
}
if (t.divide(k).compareTo(localsum)==0){
sum=sum.add(BigDecimal.ONE);
}
}
System.out.println(sum);
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class row{ public static void main(String[] args) { Map<String, BigDecimal> map = new HashMap<String, BigDecimal>(); map.put("0",new BigDecimal(0)); map.put("1",new BigDecimal(1)); map.put("2",new BigDecimal(4)); map.put("3",new BigDecimal(9)); map.put("4",new BigDecimal(16)); map.put("5",new BigDecimal(25)); map.put("6",new BigDecimal(36)); map.put("7",new BigDecimal(49)); map.put("8",new BigDecimal(64)); map.put("9",new BigDecimal(81)); Scanner sc = new Scanner(System.in); BigDecimal k = sc.nextBigDecimal(); BigDecimal a = sc.nextBigDecimal(); BigDecimal b = sc.nextBigDecimal(); BigDecimal sum = new BigDecimal(0); sc.close(); BigDecimal max = new BigDecimal(10).pow(18); if ((a.compareTo(BigDecimal.ONE) < 0) || (a.compareTo(k) < 0) || (k.compareTo(b) > 0) || (b.compareTo(max) > 0)){ System.out.println(0); return; } for (BigDecimal t=b.divideToIntegralValue(k).multiply(k);t.compareTo(a)>=0;t=t.subtract(k)){ String s = t.toPlainString(); BigDecimal localsum = new BigDecimal(0); for (int i=0;i<s.length();i++){ localsum=localsum.add(map.get(s.substring(i, i+1))); } if (t.divide(k).compareTo(localsum)==0){ sum=sum.add(BigDecimal.ONE); } } System.out.println(sum); } } |
English