阶乘函数,vector编写,大家找问题,说原因·

forestassure 2003-08-06 01:44:30
一段代码:问题在哪儿? 如何解决? 为什么 ?
void jiecheng(vector<int>& jc,int n)
{
if( n < 0 || n > 100 )
cout << "Error." << endl;

jc[0] = 1;



for( int i = 1 ; i <= n ; ++i ){
for( int j = 0 ; j < jc.size() -1 ; ++j )
jc[j] *= i;
//进位
for( j = 0 ; j < jc.size() -1 ; ++j ){
jc[j+1] += jc[j] / 10;
jc[j] %= 10;
}
}
}
问题在jc[0] ,
为什么呢
...全文
45 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fangrk 2003-08-06
搜索“阶乘”,有你想要的
  • 打赏
  • 举报
回复
xiaoyunet 2003-08-06
你的jc有没有做合适的初始化?如果jc是个空的vector,里面本来没有元素,那就玩完了。

如果要初始化jc,可以这样。
在if( n < 0 || n > 100 )
cout << "Error." << endl;之后

jc.clear();
for (int i = 0; i < n; ++i)
{
jc.push_back(0);
}
  • 打赏
  • 举报
回复
Flamesong 2003-08-06
你的进位逻辑好象不对。
  • 打赏
  • 举报
回复
相关推荐
发帖
工具平台和程序库
加入

2.4w+

社区成员

C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
申请成为版主
帖子事件
创建了帖子
2003-08-06 01:44
社区公告
暂无公告