#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct hh {int a[10031],cnt;}c;
void init()
{
memset(c.a,0,sizeof(c.a));
c.cnt=0;
return;
}
hh ff(int v)
{
init();
int cnt=0;
while(v) c.a[++cnt]=v%10,v/=10;
c.cnt=cnt;
return c;
}
hh zhuan(string s)
{
init();
int len=s.size();
for(int i=0;i<len;i++)
c.a[len-i]=s[i]-'0';
c.cnt=len;
return c;
}
hh add(hh a,hh b)
{
init();
int len=max(a.cnt,b.cnt);
for(int i=1;i<=len;i++)
{
c.a[i]+=a.a[i]+b.a[i];
if(c.a[i]>=10)//注意是>=
{
c.a[i]-=10;
c.a[i+1]++;
}
}
while(c.a[len+1]) len++;
c.cnt=len;
return c;
}
bool cmp(hh a,hh b)
{
if(a.cnt>b.cnt) return true;
if(a.cnt<b.cnt) return false;
for(int i=a.cnt;i>=1;i--)
if(a.a[i]>b.a[i]) return true;
else if(a.a[i]<b.a[i]) return false;
return true;
}
hh chu(string a,int x)
{
init();
int d=0,len=a.size();
for(int i=0;i<len;i++)//除法是从高位到低位;
{
c.a[i+1]=(a[i]-'0'+d*10)/x;
d=(d*10+a[i]-'0')%x;
}
c.cnt=len;
int sta=1;
while(c.a[sta]==0 && sta<c.cnt) sta++;
for(int i=sta;i<=c.cnt;i++) printf("%d",c.a[i]);
}
hh jian(hh a,hh b)
{
init();
if(!cmp(a,b))//先比较;
{
printf("-");
swap(a,b);
}
int len=max(a.cnt,b.cnt);
for(int i=1;i<=len;i++)
{
c.a[i]=a.a[i]-b.a[i];
if(c.a[i]<0)
{
a.a[i+1]--;
c.a[i]+=10;
}
}
while(!c.a[len] && len>1) len--;
c.cnt=len;
return c;
}
hh mult(hh a,hh b)
{
init();
for(int i=1;i<=a.cnt;i++)
{
for(int j=1;j<=b.cnt;j++)
{
c.a[i+j-1]+=a.a[i] * b.a[j];//+=
c.a[i+j]+=c.a[i+j-1]/10;//+=
c.a[i+j-1]%=10;
}
}
int len=a.cnt+b.cnt;
while(c.a[len]) len++;
c.cnt=len-1;
return c;
}
void print(hh s)
{
while(!s.a[s.cnt] && s.cnt>1) s.cnt--;
for(int i=s.cnt;i>=1;i--) printf("%d",s.a[i]);
return;
}
string s1,s2;
int n;
void solve()
{
cin>>s1>>n;
chu(s1,n);
return;
}
int main() { solve();return 0; }
高精模板
最新推荐文章于 2020-09-03 20:40:34 发布