阶乘函数,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] ,
为什么呢
...全文
71 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
你的进位逻辑好象不对。

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧