这是个大数除以小数的题目,参与运算的部分只有前几位,每次算前几位然后余数乘以10再参与下一位的运算就可以了
#include<stdio.h>
#include<string.h>
int main()
{
int cas;
scanf("%d",&cas);
for(int T=1;T<=cas;T++)
{
char num[300];
long long div;
scanf("%s%lld",num,&div);
printf("Case %d: ",T);
if(div==0)
{
printf("not divisible\n");
continue;
}
div=div>=0?div:-div;
if(num[0]=='-')
num[0]='0';
int len=strlen(num);
long long yu=0;
for(int i=0;i<len;i++)
{
yu=((num[i]-'0')+yu*10)%div;
}
if(yu==0)
printf("divisible\n");
else
printf("not divisible\n");
}
return 0;
}