1313.cpp

来自「杭电 acm部分代码 有兴趣的可以下载 谢谢」· C++ 代码 · 共 52 行

CPP
52
字号
#include<stdio.h>
#include<string>
int compare(char a[],char b[]){
    int hash[16]={0};
    int len=strlen(a);
    int i;
    for(i=0;i<len;i++){
        hash[a[i]-'0']++;
        hash[b[i]-'0']--;
    }
    for(i=0;i<10;i++)
        if(hash[i]!=0)
            return 0;
    return 1;
}
int judge(char a[]){
    char t[66];
    int len=strlen(a);
    int i,k;
    for(i=0;i<len;i++)
        t[i]=a[len-i-1];
    strcpy(a,t);
    for(k=1;k<len;k++){
        char r[66];
        int left=0;
        for(i=0;i<len;i++){
            r[i]=(t[i]+a[i]+left-96)%10+48;
            left=(t[i]+a[i]+left-96)/10;
        }
        r[len]='\0';
        if(left)
            return 0;
        else
        strcpy(a,r);
        if(compare(a,t)==0)
            return 0;
    }
    return 1;
}
int main()
{
    char s[66],t;
    while(scanf("%s",s)==1){
        printf("%s ",s);
        if(judge(s)==1)
            printf("is cyclic\n",s);
        else
            printf("is not cyclic\n",s);
    }
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?