今天有点累,不寒喧了,直接上题…
第一题:6的个数
今年是2021年,请问数字1到数字2021中,出现了多少个数字6。
错误示范:
public class T1 {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <= 2021; i++) {
if (i%10 == 6) {
count++;
}else if (i/10%10 == 6) {
count++;
}else if (i/100%10 == 6) {
count++;
}
}
System.out.println(count);
}
}
输出:544
- 当时代码输出544,用excel测试发现也是544
- 但是仔细看,你会发现是“544个单元格被找到”
- 我将每个含有 6 的数字打印,发现66只出现了一次,这说明这样写不严谨,只是计算了一遍含有多个6的数字,唉~想不明白…
正确解法:
public class T1answer {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <= 2021; i++) {
int a = i;
while (a > 0) {
if (a % 10 == 6) {
count++;
}
a /= 10;
}
}
System.out.println(count);
}
}
输出:602
第二题:小明的作业
小明同学正在学习一种新的语言。在该语言中,如果出现了一次wa或者一次aw,则代表出现了一个警告。如果出现了连续的wa或者连续的aw,则代表出现了一个错误。小明由于学习比较粗心,所以他想要知道自己刚刚写完的作业中一共出现了多少处警告和错误。下面是小明刚刚写完的作业,请你帮助小明找到他一共出现了多少次警告和多少次错误。
abcwaawawawa中出现了一次警告(wa)和一次错误(awawaw)
abcdefg中没有出现一次警告和错误
waawwaawwawa中出现了四次警告(两次wa和两次aw)和一次错误(wawa)
awawwawa中只出现了两次错误(awaw和wawa)
输入描述:
见备注
输出描述:
出现警告的次数
出现错误的次数
小明的作业如下:
iawaswapwauawhawdwafwanbiopwanivgbikvblvbwawawawvolyuvgbololvolgbyolgyowagbolgawgboplwawaolgyolwaogblwaygbowawagwabwayawopwawagyowabwaowapjwapcfrtuywawacvujwawawaufttyfuftywawawatifgugbgbyguwawawawayugbigwwwytigwygwgbwyoawawgoghwaogwborgrewabouyhwabyuhowabhnwawauygbawyawuwaoawfcawaaaahwaywauwagwawefwaafmbawk