⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zp1272.cpp

📁 一个acm题目系统会自动删除debug和release目录
💻 CPP
字号:
#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
//   FILE *in=fopen("input.txt","r");
//   FILE *out=fopen("output.txt","w");

  char st[40];
  int ln,i,j,s,p,dl,cl,
      a[40],c[40],d[40],b[40];
  while (scanf("%s",st) && st[0]!='*')
  {
    ln=strlen(st);
    if (st[0]>='0' && st[0]<='9')
    {
      for (i=0;i<ln;i++)
        a[i]=st[ln-i-1]-'0';
      s=0;
      p=ln;
      while (ln>1)
      {

        a[0]--;
        for (i=0;i<ln;i++)
          if (a[i]<0)
          {
            a[i]=9;
            a[i+1]--;
          }
          else
            break;
        if (a[ln-1]==0)
          ln--;

        for (i=ln-1;i>0;i--)
        {
          a[i-1]+=(a[i]%26)*10;
          a[i]/=26;
          if (a[i]==0 && i==ln-1)
            ln--;
        }
        b[s++]=a[0]%26;
        a[0]/=26;
      }
      if (a[0])
        b[s++]=a[0]-1;

      for (i=s-1;i>=0;i--)
        printf("%c",b[i]+'a');
      for (i=0;i<22-s;i++)
        printf(" ");
      for (i=0;i<p;i++)
        if ((i-p%3)%3==0 && i)
          printf(",%c",st[i]);
        else
          printf("%c",st[i]);
      printf("\n");
    }
    else
    {
      for (i=0;i<32;i++)
      {
        c[i]=0;
        d[i]=0;
      }

      dl=1;
      d[0]=1;
      cl=1;
      c[0]=st[ln-1]-'a'+1;
       for (i=0;i<cl;i++)
          if (c[i]>9)
          {
            c[i+1]+=c[i]/10;
            c[i]%=10;
            if (i==cl-1) cl++;
          }

      for (j=ln-2;j>=0;j--)
      {
        for (i=0;i<dl;i++)
          d[i]*=26;
        for (i=0;i<dl;i++)
          if (d[i]>9)
          {
            d[i+1]+=d[i]/10;
            d[i]%=10;
            if (i==dl-1) dl++;
          }
        for (i=0;i<dl;i++)
          c[i]+=(st[j]-'a'+1)*d[i];
        if (dl>cl)
          cl=dl;
        for (i=0;i<cl;i++)
          if (c[i]>9)
          {
            c[i+1]+=c[i]/10;
            c[i]%=10;
            if (i==cl-1) cl++;
          }
      }
      printf("%s",st);
      for (i=0;i<22-ln;i++)
        printf(" ");

      for (i=cl-1;i>=0;i--)
        if ((cl-1-i-cl%3)%3==0 && cl-1-i)
          printf(",%d",c[i]);
        else
          printf("%d",c[i]);
      printf("\n");
    }
  }
  return 0;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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