Problem Link : http://lightoj.com/volume_showproblem.php?problem=1214
Solution Idea : manual division.
Solution :
#include<bits/stdc++.h>
#define ll long long
using namespace std;
char s[10002];
int main()
{
ll int b,t,sz,res,val,p,cnt,i,w;
scanf("%lld",&t);
getchar();
for(ll int ca=1; ca<=t; ca++)
{
scanf("%s%lld",s,&b);
getchar();
if(b<0) b=-1*b;
p=b,cnt=0,res=-1,val=0,i=0,w=-1;
sz=strlen(s);
if(s[0]=='-')i++;
val=s[i]-48;
while(i<sz)
{
if(val>=b)
{
val=val%b;
i++;
w=0;
}
else
{
i++;
if(w==0)
{
i--;
w=-1;
}
if(i<sz )
{
val=(val*10)+s[i]-48;
}
}
}
if(val==0)
{
printf("Case %lld: divisible\n",ca);
}
else printf("Case %lld: not divisible\n",ca);
}
}
Solution Idea : manual division.
Solution :
#include<bits/stdc++.h>
#define ll long long
using namespace std;
char s[10002];
int main()
{
ll int b,t,sz,res,val,p,cnt,i,w;
scanf("%lld",&t);
getchar();
for(ll int ca=1; ca<=t; ca++)
{
scanf("%s%lld",s,&b);
getchar();
if(b<0) b=-1*b;
p=b,cnt=0,res=-1,val=0,i=0,w=-1;
sz=strlen(s);
if(s[0]=='-')i++;
val=s[i]-48;
while(i<sz)
{
if(val>=b)
{
val=val%b;
i++;
w=0;
}
else
{
i++;
if(w==0)
{
i--;
w=-1;
}
if(i<sz )
{
val=(val*10)+s[i]-48;
}
}
}
if(val==0)
{
printf("Case %lld: divisible\n",ca);
}
else printf("Case %lld: not divisible\n",ca);
}
}
No comments:
Post a Comment