C++怎么算阶乘

4)Y=X-+-+…+(-1)n+1+…的值,精确到10-6。这个C++怎么弄啊... 4)   Y=X- + - +…+(-1)n+1 +…的值,精确到10-6。这个C++怎么弄啊 展开
 我来答
天方之夜谭
2019-10-08 · TA获得超过587个赞
知道小有建树答主
回答量:223
采纳率:100%
帮助的人:208万
展开全部
这个问题可以这样理解,数字是由表示数值的字符,和相应的一个排列组成的,而这个字符在通常情况下是由一个字符组成的,比如0~9,a~z,A~Z,单是这种表示方法无论如何都是有限制的,因为人为创造的计算机用的单个字符是有限的。那么可以用一个数组表示一个数字,而数组中的一个元素表示一个数字的字符,每个元素同样可以使用一个数组来表示,这样循环下去,就成了一个无限大的数字了。但是这样的数字,在计算过程中,需要自己去考虑符号、进位、借位、溢出、等计算问题。你所给出的代码就是一种这样的表达形式。
将一个数表示为多个位数组成的一个数组(f[]),乘法按照由低位到高位,当前位(f[j])和某一数(i)相乘,得到一个结果(s),这个结果和当前位的最大值做除法,商为高一位的数值,也就是进位(c),余数为此位的数值;此时如果高一位的数值仍然大于该位的最大值,继续做除法,商为更高一位的数值,余数(s%10)为该位的数值,以此类推。也就是内循环所表示的意思。
外循环所表示的就是从1开始连续做乘法,一直乘到n。
下边那个循环是将结果输出。
不过就目前看来你所给出的代码,仍然有溢出的问题,最大只能表示一个3000位的十进制数字。
云南新华电脑学校
2019-10-07 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
递归,但是不能算得太大,否则会造成堆栈溢出
int GetResult(int m)
{
if(m == 1 || m == 0) return 1;
return m*GetResult(m-1);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徭永望0g6
2019-10-07 · 贡献了超过292个回答
知道答主
回答量:292
采纳率:8%
帮助的人:19.5万
展开全部
具体我能够提供。
追问
大哥怎么弄呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式