无题
多少个2
题目:1到2020里面有多少个2
代码:
package shousuan;
import java.util.Arrays;
public class 多少个2 {
public static void main(String[] args) {
//初始化数组
int size = 2020;
int [] num = new int[ size];
for (int i = 0; i < size ; i++){
num[i] = i+1;
}
// System.out.println(Arrays.toString(num));
//转为字符串再输出
//计算包含数字2的元素个数
int count = 0;
for (int i = 0; i < size; i++) {
int currentNum = num[i];
while (currentNum > 0) {
if (currentNum % 10 == 2) {
count++;
}
currentNum /= 10;
}
}
System.out.println("数组中包含数字2的元素个数为:" + count);
}
}
excel
填充2020个数字 然后找到替换 点全部替换
卡片
【题目描述】
小蓝有很多数字卡片,每张卡片上都是数字0 到9。
小蓝准备用这些卡片来拼一些数,他想从1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。
小蓝想知道自己能从1 拼到多少。
例如,当小蓝有30 张卡片,其中0 到9 各3 张,则小蓝可以拼出1 到10,但是拼11 时卡片1 已经只有一张了,不够拼出11。
现在小蓝手里有0 到9 的卡片各2021 张,共20210 张,请问小蓝可以从1拼到多少?
提示:建议使用计算机编程解决问题。
【答案】:3181
【题解】:0-9的卡片每个数字有2021张,从1开始遍历,每遍历到一个数字,这个卡片数字的个数就-1,如果某一个数字的卡片没有了,就遍历结束了。
import java.util.Arrays;
public class Main {
static int a[] = new int[10];//0-9
public static void main(String[] args) {
Arrays.fill(a, 2021);//每个数初始值为2021
int ans = 0;
for(int i = 1; i <= 20210; i++) {
int t = i;
while(t > 0) {
int s = t % 10;
t /= 10;
a[s]--;
//注意:这里不是==0,上面a[s]--,减了一次才为0,说明这次没减之前为1,还有最后一个数,
//如果为0,-1就会小于0,说明这个数2021张牌都用完啦
if(a[s] < 0) {
ans = i-1; //当前遍历的这个数肯定没有遍历完,故遍历到这个数的前一个
break;
}
}
if(ans != 0) break;
}
System.out.println(ans);
}
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 涂良湘!