vector b(a.rbegin(), a.rend());
高精度加法模板(vector)
vector add(vector u,vector v){
vector uu(u.rbegin(),u.rend());
vector vv(v.rbegin(),v.rend());
vector 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© > 1e16) return 1e18;
res = res * r + get©;
}
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;