poj 1152
數(shù)據(jù)量不大,可以直接枚舉。首先確定所需要的最小進(jìn)制,然后從此處向62進(jìn)行枚舉。然后就是關(guān)于求摸的問題。不可能把整個(gè)數(shù)先求出來。因?yàn)閿?shù)很大,根本存不下。根據(jù)求摸公式可得結(jié)果a1a2a3a4...a(s)%(n-1)=(a1+a2+...a(s)))%(n-1)
#include <iostream> #include <cstring> 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<len;i++){t=get(s[i])+1;if(max<t) max=t;}int sum=0,j;for(j=0;j<len;j++)sum+=get(s[j]);for(i=max;i<=62;i++){if(sum%(i-1)==0){cout<<i<<endl;break;}}if(i>62) cout<<"such number is impossible!"<<endl;}return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/lj030/archive/2012/11/12/3002228.html
總結(jié)
- 上一篇: UnicodeEncodeError:
- 下一篇: USACO 2.3 Money Syst