蓝桥杯 省赛 填空题 幸运数字 进位制+算法API
🍑 算法题解专栏
🍑 测试地址
🍑 答案:215040
🍑 常用算法API
🍤 Integer.toBinaryString(x);// 二进制
🍤 Integer.toOctalString(x); // 八进制
🍤 Integer.toString(x); // 默认十进制
🍤 Integer.toHexString(x);// 十进制
public class Main
{
public static void main(String[] args)
{
int cnt = 0;
int ans = 0;
for (int i = 1; i < 1000000; i++)
{
if (check(i))
{
ans = i;
System.out.println(cnt + "个: " + ans);
cnt++;
}
if (cnt == 2023)
break;
}
System.out.println(ans);
}
private static boolean check(int x)
{
// 2 8 10 16 进制
String s2 = Integer.toBinaryString(x);
String s8 = Integer.toOctalString(x);
String s10 = Integer.toString(x);
String s16 = Integer.toHexString(x);
int n2 = 0;
for (int i = 0; i < s2.length(); i++)
{
n2 += (s2.charAt(i) - '0');
}
int n8 = 0;
for (int i = 0; i < s8.length(); i++)
{
n8 += (s8.charAt(i) - '0');
}
int n10 = 0;
for (int i = 0; i < s10.length(); i++)
{
n10 += (s10.charAt(i) - '0');
}
int n16 = 0;
for (int i = 0; i < s16.length(); i++)
{
char c = s16.charAt(i);
if (Character.isLetter(c))
{
n16 += (c - 'a' + 10);
} else
{
n16 += (c - '0');
}
}
if (x % n2 == 0 && x % n8 == 0 && x % n10 == 0 && x % n16 == 0)
return true;
return false;
}
}