原题链接:CF1560A
题意
给定t组数据,每组数据有一个输入为n,输出第n个不能被3整除且末位不是3的数。
思路
由于n最大仅为1000,直接按题意模拟即可。
也可先预处理出1000个答案,然后O(1)输出。
(主要注意读题,我将题意理解成了含有3的数导致浪费了2分钟)
代码
#include <bits/stdc++.h>//万能头
using namespace std;
bool judge(int ans){//判断数据是否符合题意
if(ans % 3 == 0){
return true;
}
if(ans % 10 == 3){
return true;
}
return false;
}
void solve(){
int k, ans = 0;
cin >> k;
for(int i = 0; i < k; i++){
ans++;
while(judge(ans)){
ans++;
}
}
cout << ans << endl;
}
int main()
{
int tt;
cin >> tt;
while(tt--){
solve();
}
return 0;
}