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

📄 basic.txt

📁 以前ACM在哈工程HRBEU做的一些简单题目
💻 TXT
字号:
#include "iostream.h"
#include "string.h"
#include "stdlib.h"
bool flag;
void yz(char s[],int k)
{
     int i,sum=0,x=1,f;
     if(k<2||k>16){flag=true;return;}
     i=0;
     while(s[i]!='#'&&s[i]!='\0')i++;
     if(s[i]=='\0'){flag=true;return;}
     f=i+1;
     if(s[f]=='\0')
     {
       for(i=i-1;i>=0;i--)
      {
       if(!((s[i]<='9'&&s[i]-'0'<k)||(s[i]>='a'&&s[i]-'a'+10<k)))flag=true;
      }
      return;
     }
     else
     {  
        for(i=i-1;i>=0;i--)
      {
        if(s[i]<='9'&&s[i]-'0'<k)sum+=x*(s[i]-'0');
        else if(s[i]>='a'&&s[i]-'a'+10<k)sum+=x*(s[i]-'a'+10);
        else {flag=true;return;}
        if(sum>16||x>16){flag=true;return;}
        x*=k;
      }
      if(sum<2){flag=true;return;}
      f++;
      while(s[f]=='0')f++;
      yz(s+f,sum);
     }
}       
int main()
{
    char s[1000];
    int n,l,i,t,k;
    cin>>n;
    while(n--)
  {
     cin>>s;
     flag=false;
     t=0;
     l=strlen(s);
     for(i=0;i<l;i++)
     {
        if(!((s[i]>='0'&&s[i]<='9')||(s[i]>='a'&&s[i]<='f')||s[i]=='#'))
        {flag=true;break;}
        if(t<1&&s[i]=='#'&&s[i+1]=='#'){flag=true;break;}
        if(t>=1&&s[i]=='#'&&s[i+1]=='#'&&(s[i+2]=='\0'||s[i+2]=='#'))
        {flag=true;break;}
        if(t>1&&t%2==0&&s[i]=='#'&&s[i-1]!='#'){flag=true;break;}
        if(s[i]=='#')t++;
     }
     if(l>80||t==1||s[0]=='#')flag=true;
     if(!flag)
      {
        if(t==0)
        {
          for(i=0;i<l;i++)if(s[i]>'9')flag=true;
        }
        else
        {
          k=atoi(s);
          for(i=0;i<l;i++){if(s[i]=='#')break;if(s[i]>'9'){flag=true;break;}}
          if(!flag)
          {
          i++;
          while(s[i]=='0')i++;
          yz(s+i,k);
          }
        }
      }
      if(flag)cout<<"no"<<endl;
      else cout<<"yes"<<endl;
     }
     return 0;
}
          
          

⌨️ 快捷键说明

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