萌新想求助一下大佬们

走不出新手村 2021-04-20 10:38:54
为什么我这个求组合数的程序,在求的数比较小的时候,它能得到正确答案;求的数大了,它的答案就错了。
...全文
247 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-04-26
  • 打赏
  • 举报
回复
C和C++ 完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++ 算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
走不出新手村 2021-04-21
  • 打赏
  • 举报
回复
引用 1 楼 forever74的回复:
你得自己化简组合数公式,确保中间过程不溢出。 求阶乘很快就溢出了。
好的,我试一下,谢谢提醒。
forever74 2021-04-21
  • 打赏
  • 举报
回复
你得自己化简组合数公式,确保中间过程不溢出。 求阶乘很快就溢出了。
自信男孩 2021-04-21
  • 打赏
  • 举报
回复
引用 4 楼 m0_57478578 的回复:
[quote=引用 3 楼 自信男孩的回复:]主义考虑溢出,要么把sum的类型用u64(unsigned long long)试试~
这个我用过,vc6.0好像不能这样用。[/quote] 试一下,把“好像”变成确定“能不能用”
forever74 2021-04-21
  • 打赏
  • 举报
回复
嗯,我的意思是把公式里的阶乘展开,约分一哈 剩下的乘积项分解质因数展开,再约一轮 然后再算。 说白了就是模拟手工计算过程。
movsd 2021-04-21
  • 打赏
  • 举报
回复
unsigned __int64 sum;
走不出新手村 2021-04-21
  • 打赏
  • 举报
回复
引用 3 楼 自信男孩的回复:
主义考虑溢出,要么把sum的类型用u64(unsigned long long)试试~
这个我用过,vc6.0好像不能这样用。
自信男孩 2021-04-21
  • 打赏
  • 举报
回复
主义考虑溢出,要么把sum的类型用u64(unsigned long long)试试~

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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