C++ PUSH_BACK的用法
CTTIntCTTInt::BitMultiBigInt(constCTTInt&left,intright)const//有符号数相乘{intinc=0;CTTIntr...
CTTInt CTTInt::BitMultiBigInt(const CTTInt & left,int right) const //有符号数相乘
{
int inc=0;
CTTInt ret;
for(int i=0;i<left.m_data.size();i++)
ret.m_data.push_back( BitMultiBit(left.m_data[i],right,inc));
if (inc>0)
ret.m_data.push_back(inc);
return ret;
}
m_data是用的迭代器int..
数据都是对的,但是不管怎么后面都多个0,比如1*1,调试的时候查看了ret是<1,0>这样,最后输出就是10.我表示纠结,不知道怎么处理最后那个0.
CTTINT 定义的一个类~整个程序思路是使用万进制实现大整数加减乘除
里面定义的两个std::vector<int> m_data; //数据
bool m_isPositive; //符号
BitMultiBigInt没有多个重载
下面那个是BitMultiBigbit...
int CTTInt::BitMultiBit(int left , int right , int inc) const //有符号数按位相乘
{
int ret = left * right + inc;
inc = 0;
if(ret>=DECIMAL_BIT_MAX)
{
inc = ret / DECIMAL_BIT_MAX;
ret = ret % DECIMAL_BIT_MAX;
}
return ret;
} 展开
{
int inc=0;
CTTInt ret;
for(int i=0;i<left.m_data.size();i++)
ret.m_data.push_back( BitMultiBit(left.m_data[i],right,inc));
if (inc>0)
ret.m_data.push_back(inc);
return ret;
}
m_data是用的迭代器int..
数据都是对的,但是不管怎么后面都多个0,比如1*1,调试的时候查看了ret是<1,0>这样,最后输出就是10.我表示纠结,不知道怎么处理最后那个0.
CTTINT 定义的一个类~整个程序思路是使用万进制实现大整数加减乘除
里面定义的两个std::vector<int> m_data; //数据
bool m_isPositive; //符号
BitMultiBigInt没有多个重载
下面那个是BitMultiBigbit...
int CTTInt::BitMultiBit(int left , int right , int inc) const //有符号数按位相乘
{
int ret = left * right + inc;
inc = 0;
if(ret>=DECIMAL_BIT_MAX)
{
inc = ret / DECIMAL_BIT_MAX;
ret = ret % DECIMAL_BIT_MAX;
}
return ret;
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询