poj 1047(大数乘法,类似1001)
作者:互联网
#include<iostream> #include<cstring> #include<cstdio> using namespace std; const int maxn = 65; int d[10],p[10]; char a[maxn]; int t[maxn]; bool flag; void init(){ memset(d,0,sizeof(d)); for(int i=0;i<strlen(a);i++) d[a[i]-'0']++; } bool mul(int n){ int len = strlen(a); memset(t,0,sizeof(t)); int i; for(i=0;i<len;i++){ t[i] += (a[len-1-i]-'0')*n; if(t[i]>=10){ t[i+1] += t[i]/10; t[i] = t[i]%10; } } while(t[i]>=10){ t[i+1] += t[i]/10; t[i] = t[i]%10; } len = i; // for(i--;i>=0;i--){ // cout<<t[i]; // } // cout<<endl; memset(p,0,sizeof(p)); for(i=len-1;i>=0;i--) p[t[i]]++; for(i=0;i<=9;i++){ if(p[i]!=d[i]) return false; } return true; } int main(){ while(gets(a)){ flag = true; init(); for(int i=2;i<=strlen(a);i++){ if(!mul(i)){ flag = false; break; } } if(flag)printf("%s is cyclic\n",a); else printf("%s is not cyclic\n",a); } return 0; }
标签:10,1047,cout,int,--,poj,maxn,include,1001 来源: https://www.cnblogs.com/stevenzrx/p/15088227.html