4. 公平数

发布网友

我来回答

2个回答

热心网友

#include"stdio.h"
#include"string.h"
main()
{
char s[17]="0000000000000000",flag[]="000000000000000",a;
int k,x,y,suml=0,sumr=0,i=0,j,m,n,b,c=0,count=0,l[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
scanf("%s\n%x %x %x",s,&k,&x,&y);
b=strlen(s);
j=x;
for(;j<=y;j++)
{
m=j;
for(;m/16!=0;m=m/16)
{
n=m%16;
if(i!=0)
l[i]=l[i-1];
l[i]=n;i++;
if(n>9) a='A'+n-9;
else a='0'+n;
while(b--)
if(s[b]==a){
if(flag[b]==0)
{flag[b]=1;;break;}
else goto gotofor;
}
}
gotofor:;
for(c=0;c<i/2;c++)
{suml+=l[c];sumr+=l[i-c];}
if(!(m%k)&&i!=0&&suml==sumr) count++;
}
printf("%d",count);
}

热心网友

这是百度之星的考题
没想到真有高手来做这么繁琐的题

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com