例如:当前数字只能由1,4,5构成,问在所有的数中,满足这种性质的第n个数是多少
考虑进制:数字只能由1,4,5构成,换句话来说和只能由0,1,2构成同理,只不过最后是把012换成了145
所以可以直接把这个数换成3进制,然后对应输出即可,任何相关的都可以用进制来解决
#include <bits/stdc++.h> #define int long long using namespace std; const int N=1e6+10,mod=1e9+7; signed main() { std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); int n; cin>>n; if(n!=1) n--; else return cout<<0,0; stack<int>s; while(n){ s.push(n%5),n/=5; } while(!s.empty()){ int now=s.top(); s.pop(); if(now==0) cout<<"0"; if(now==1) cout<<"2"; if(now==2) cout<<"4"; if(now==3) cout<<"6"; if(now==4) cout<<"8"; } return 0; }
标签:只能,数字,int,个数,求出,构成,进制 From: https://www.cnblogs.com/o-Sakurajimamai-o/p/18213448