CCF 201912-1 报数
#include<stdio.h>
#include<iostream>
using namespace std;
//甲乙丙丁
int a[4] = { 0 };
bool jump(int a) {
do {
if (a % 10 == 7) {
return 1;
break;
}
a = a / 10;
} while (a > 0);
return 0;
}
int main() {
int n;
cin >> n;
int num = 1;
for (int i = 1; i <= n;) {
if (num % 7 == 0 || jump(num)) {
a[(num-1) % 4 ]++;
num++;
continue;
}
i++;
num++;
}
for (int i = 0; i < 4; i++) {
if (i == 3) {
cout << a[3];
continue;
}
cout << a[i] << endl;
}
return 0;
}
错误原因
a[(num-1) % 4 ]++;
//错写成
a[num % 4 - 1]++;
//这样的话,有可能余数为0,-1就变成了-1