| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
求教:有没有数学方法可以证明?#include<iostream>
#include<cstdlib>
using namespace std;
int a1[100],b[100],c[100],la;
char a[100];
int cmp(const void *l1,const void *l2)
{
return *(int *)(l1)-*(int *)(l2);
}
int Compare()
{
int i;
for(i=0;i<la;i++)
if(b[i]!=c[i])
return 0;
return 1;
}
int main()
{
int n,i,k,g;
while(cin>>a)
{
la=strlen(a);
for(i=0;i<la;i++)
a1[i]=a[la-i-1]-'0';
for(i=0;i<la;i++)
b[i]=a1[i];
qsort(b,la,sizeof(int),cmp);
g=0;
for(k=1;k<=la;k++)
{
for(i=0;i<la;i++)
c[i]=a1[i];
for(i=0;i<la;i++)
c[i]*=k;
for(i=0;i<la;i++)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
qsort(c,la,sizeof(int),cmp);
if(Compare()==0)
{
g=1;
break;
}
}
if(g==0)
cout<<a<<" is cyclic"<<endl;
else
cout<<a<<" is not cyclic"<<endl;
}
}
请大家帮我看看有没有数学方法可以证明我的答案也是对的?谢谢了!
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator