day08

今天看了高精度乘除法
标注库头文件algorithm中包括reverse(),作用是交换数组的顺序,从尾到首储存
除法的思路就是跟竖式计算差不多,不够商0,然后 余数t*10+下一位 作下一个被除数
最后用reverse翻转数组,去掉后置0(相当于去掉原数组的前置0)

include

include

include

using namespace std;
vectordiv(vector&A,int m,int&t)
{
t=0;
vectorC;
for(int i=0;i<A.size();i++)
{
C.push_back((t10+A[i])/m);
t=(t
10+A[i])%m;
// t = t * 10 + A[i];
// C.push_back(t / m); // 当前位的商
// t = t % m;
}
reverse(C.begin(),C.end());
while(C.size()>1&&C.back()==0)C.pop_back();
return C;
}
int main()
{
string a;
int m,t;
cin>>a>>m;
vectorA;
for(int i=0;i<a.size();i++)A.push_back(a[i]-'0');
auto c=div(A,m,t);
for(int i=c.size()-1;i>=0;i--)cout<<c[i];
cout<<endl<<t<<endl;
return 0;
}
明天看前缀和 和 差分

posted @ 2025-07-10 17:57  苏楗轶  阅读(7)  评论(0)    收藏  举报