输入有多组数据,每组数据包含一个正整数n (1≤n≤2147483647)和一个正整数r (2≤r≤16)。
其中n为十进制整数,r为目标进制。
对应每组输入,输出整数n转换成r进制之后,其中包含多少个“1”。
1 2<br/>123 16
1<br/>0
import java.util.Scanner;
public class Main {
public static String f(int n, int base) {
if (n == 0) return "";
return f(n / base, base) + ((n % base) >= 10 ? "" : (n % base));
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int n = in.nextInt();
int base = in.nextInt();
int cnt = 0;
String s = f(n, base);
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '1') cnt++;
}
System.out.println(cnt);
}
}
}