{
// 没有对应位则需要添加
rest.push_back(carry);
}
}
}
// 上述计算之后,会出现有些位的数字超过了10,那是因为在处理每一位运算结果之后
// 相加时地位向高位可能存在进位,上面没有考虑,所以需要进行调整
for(i = 0;i < rest.size();++i)
{
if(rest[i] > 9)
{
if((i+1) != rest.size())
{
// 高位存在,则直接更新高位
rest[i+1] += rest[i] / 10;
rest[i] = rest[i] % 10;
}
else
{
// 高位不存在,则需要插入
rest.push_back(rest[i] / 10);
rest[i] = rest[i] % 10;
}
}
}
// 将计算结果存储到原来的容器中
calcresult.clear();
for(i = 0;i < rest.size();++i)
{
calcresult.push_back(rest[i]);
}
}
int main()
{
int num = 0;
vector calcresult;
// 将初值1赋进去
calcresult.push_back(1);
// 获取欲求阶乘的整数
cout<<"输入欲求阶乘的整数:"<
cin>>num;
for(int i = 0;i < num;++i)
{
Calc(i+1,calcresult);
}
// 输出计算结果
cout<
for(unsigned int i = calcresult.size();i > 0 ;--i)
{
cout<
}
cout<
return 0;
}