数据量不大,可以直接枚举。首先确定所需要的最小进制,然后从此处向62进行枚举。然后就是关于求摸的问题。不可能把整个数先求出来。因为数很大,根本存不下。根据求摸公式可得结果a1a2a3a4...a(s)%(n-1)=(a1+a2+...a(s)))%(n-1)
#include#include using namespace std;char s[40000];int get(char a){ if(a>='0'&&a<='9') return a-'0'; else if(a>='A'&&a<='Z') return a-'A'+10; else return a-'a'+36;}int main(){ while(cin>>s) { int i; int max=0,t; int len=strlen(s); for(i=0;i 62) cout<<"such number is impossible!"<