题目详情:
题目描述
小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。
请问在整数 1 至 n 中,洁净数有多少个?
输入描述
输入的第一行包含一个整数 n(1≤n≤106)。
输出描述
输出一行包含一个整数,表示答案。
输入输出样例
示例
输入
30
输出
18
问题描述
一个正整数的双阶乘, 表示不超过这个正整数且与它有相同奇偶性的所有 正整数乘积。 nn 的双阶乘用 n ! !n!! 表示。
例如:
3!!=3×1=3
8!!=8×6×4×2=384
11!!=11×9×7×5×3×1=10395
请问,2021!! 的最后 5 位 (这里指十进制位) 是多少?
注意: 02021!!=2021×2019×⋯×5×3×1 。
提示: 建议使用计算机编程解决问题。
解题思路:
第一题只需要把每一个数字提取出来去判断是不是2即可
第二题只需要使用BigInteger就可以轻松解决
代码实现:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int count = 0;
for (int i = 1; i <= n; i++) {
char[] ch = String.valueOf(i).toCharArray();
for (char c : ch) {
if (c == '2') {
count++;
break;
}
}
}
System.out.println(n-count);
}
import java.math.BigInteger;
public class d1317 {
public static void main(String[] args) {
BigInteger sum = BigInteger.valueOf(1);
for (int i = 1; i <=2021 ; i = i + 2) {
sum = sum.multiply(BigInteger.valueOf(i));
}
sum = sum.remainder(BigInteger.valueOf(100000));
System.out.println(sum);
}
}
答案:
如上