题解 CF1560A【Dislike of Threes】

Chinshyo

2021-08-19 08:06:42

Solution

## 一句话题意 有一个数列,不存在可被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; } ```