- 多项式用数组表示
索引为指数
数组中的内容为多项式的系数
- 多项式乘法
double a[N],b[N],c[2*N];for(int i=0;i<N;i++){for(int j=0;j<N;j++){c[i+j]+=a[i]*b[j];}}
在向量b中逆序存放向量a
vector
高精度加法模板(vector)
vector<int> add(vector<int> u,vector<int> v){vector<int> uu(u.rbegin(),u.rend());vector<int> vv(v.rbegin(),v.rend());vector<int> c;for(int i=0,t=0;i<uu.size()||i<vv.size()||t;i++){int s = t;if(i<uu.size()) s+=uu[i];if(i<vv.size()) s+=vv[i];c.push_back(s%10);t=s/10;}reverse(c.begin(),c.end());return c;}
进制转换(将r进制转换成十进制)(秦九韶算法)
int get(char c){if (c <= '9') return c - '0';return c - 'a' + 10;}LL calc(string n, LL r){LL res = 0;for (auto c : n){if ((double)res * r + get(c) > 1e16) return 1e18;res = res * r + get(c);}return res;}
一直输入n直到n为负数截止
while(cin>>n,n>0){}
秦九韶算法 z = z*d+y d为需要向十进制转换的进制 y为此进制下的每一项
- 对于读入的数据,如果需要根据数据类型进行不同的运算,比如读入的是数字就加1,如果是字母就返回ascii,那么我们可以先把数据存放到 stringstream 里,然后再保存到其他数据类型中。
string s;cin>>s;stringstream ss(s);int a;string b;ss>>a;ss>>b;
