题解 CF1560A【Dislike of Threes】
Chinshyo
2021-08-19 08:06:42
## 一句话题意
有一个数列,不存在可被3整除或以十进制表示的数字3结尾的整数,求数列中第 $k$ 个数。
## 思路简述
本题直接模拟即可。从1开始枚举数列的发展。如果下一个是三的倍数或结尾是3,我们就不记录下一位在数列中,否则我们就用计数器记录,当计数器与 $k$ 相等时就输出当前数字。
## 代码
```cpp
#include<bits/stdc++.h>
#define debug cout << "Helloworld" << endl
using namespace std;
int a[10005];
int main() {
int n;
cin >> n;
for(int i = 1; i <= n; i++) {
int s, cnt = 1, r = 1; //cnt:数列中第几个,r:第cnt个数
cin >> s;
while(cnt < s) {
if((r + 1) % 3 == 0 || (r + 1) % 10 == 3) { //判断下一个是否符合在数列中的条件
r++; //不符合,数组加1
} else {
r++;
cnt++;//符合条件,全部加1
}
}
cout << r << endl; //输出解
}
return 0;
}
```