![](https://img-blog.csdn.net/20180324153334625)
![](https://img-blog.csdn.net/20180324153341413)
![](https://img-blog.csdn.net/20180324153346540)
![](https://img-blog.csdn.net/2018032415335152)
void jinzhiConvert()//p进制转换为R进制
{
int p,r,len,i,k,d,temp;
char s[10],mod[10];
while(~scanf("%d %d %s",&p,&r,&s))
{
len=strlen(s);
k=1;
d=0;
for(i=len-1;i>=0;i--)//p进制转换为10进制
{
if(s[i]>='0'&&s[i]<='9')
d+=(s[i]-'0')*k;
if(s[i]>='A'&&s[i]<='F')
d+=(s[i]-'A'+10)*k;
k*=p;
}
/* for(i=0;i<10;i++)
mod[i]=0;
for(i=0;i<10;i++)//10进制转为r进制
{
if(r>0&&r<=9)
mod[i]=d%r+'0';
if(r>=10&&r<=16)
{
mod[i]=d%r-10+'A';
}
d/=r;
if(d<r) {mod[i+1]=d+'0';break;}
}
for(i=10;i>=0;i--)
{
if(mod[i]!=0) {printf("%s",mod);break;}
}*/
for(i=0;i<10;i++)
mod[i]=0;
mod[10]=' ';
i=9;
while(d!=0)//10进制转为r进制
{
temp=d%r;
if(temp<=9) mod[--i]=temp+'0';
else mod[--i]=temp-10+'A';
d/=r;
}
for(i=0;i<10;i++)
{
if(mod[i]!=0) {printf("%s",&mod[i]);break;}
}
}
}
/**********确定数制*************/
/** **/
/** **/
int maxdigit(int m)
{
int maxd=0,k;
while(m!=0)
{
k=m%10;
if(k>maxd)
maxd=k;
m=m/10;
}
return maxd;
}
int convertdecimal(int m,int k)
{
int p,s;
s=0;
p=1;
while(m!=0)
{
s+=m%10*p;
m/=10;
p=p*k;
}
return s;
}
void defineShuzhi()
{
int p,q,r,B,n,i,d,dp,dq,dr;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %d %d",&p,&q,&r);
B=maxdigit(p);
d=maxdigit(q);
if(d>B)
B=d;
d=maxdigit(r);
if(d>B)
B=d;
for(B++;B<=16;B++)
{
dp=convertdecimal(p,B);
dq=convertdecimal(q,B);
dr=convertdecimal(r,B);
if(dp*dq==dr) break;
}
if(B>16) B=0;
printf("%d
",B);
}
}
/** **/
/** **/
/**********确定数制*************/
void maxLenSubStr() //最长子串
{
char str[100][101],minStr[101],subStr[101],revSubStr[101];
unsigned int i,j,t,m,n,substrlen,found,minlen;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
minlen=101;
for(i=0;i<n;i++)
{
scanf("%s",str[i]);
if(strlen(str[i])<minlen)
{
minlen=strlen(str[i]);
m=i;
}
}
strcpy(minStr,str[m]);
substrlen=minlen;
while(substrlen>0)
{
for(i=0;i<=minlen-substrlen;i++)
{
strncpy(subStr,minStr+i,substrlen);
subStr[substrlen]=' ';
strncpy(revSubStr,minStr+i,substrlen);
revSubStr[substrlen]=' ';
strrev(revSubStr);
found=1;
for(j=0;j<n;j++)
{
if(strstr(str[j],subStr)==NULL&&strstr(str[j],revSubStr)==NULL)
{
found=0;
break;
}
}
if(found) break;
}
if(found) break;
substrlen--;
}
printf("%d
",substrlen);
}
}
void countStr()//统计字符数
{
int a[26],n,i,j,len,max;
char s[50],alpha;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",s);
for(j=0;j<26;j++)
a[j]=0;
len=strlen(s);
for(j=0;j<len;j++)
{
a[s[j]-'a']++;
}
max=a[0];
alpha='a';
for(j=1;j<26;j++)
if(a[j]>max)
{
max=a[j];
alpha=j+'a';
}
printf("%c %d
",alpha,max);
}
}