C语言求阶乘的位数,急求~~~Description:leilei喜欢挑战,这段时间他接触了信息安全,他发现在许多应用中,需要非常大的整数数字,面对这个需求,你需要给定一个整数G,求G!有多少位?你能帮他解决吗?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 18:51:10

C语言求阶乘的位数,急求~~~Description:leilei喜欢挑战,这段时间他接触了信息安全,他发现在许多应用中,需要非常大的整数数字,面对这个需求,你需要给定一个整数G,求G!有多少位?你能帮他解决吗?
C语言求阶乘的位数,急求~~~
Description:leilei喜欢挑战,这段时间他接触了信息安全,他发现在许多应用中,需要非常大的整数数字,面对这个需求,你需要给定一个整数G,求G!有多少位?你能帮他解决吗?
Input Format:
多组输入.每组输入包含一个整数G(1

C语言求阶乘的位数,急求~~~Description:leilei喜欢挑战,这段时间他接触了信息安全,他发现在许多应用中,需要非常大的整数数字,面对这个需求,你需要给定一个整数G,求G!有多少位?你能帮他解决吗?
你试试这么算:将所有乘数从小到大排列每次计算乘一个数后探测性除十如果得到的数存在个位数>0时成立,如果是小数则不进行乘法.
比如说:
3!=1*2*3;首先你先获得的是1.1/10=0.1.这个10不能乘此时10的幂指数应保持为0.接下来2*1/10=0.2 也不能除十.以此类推.最终得到3!的位数为1(10的0次幂)
接下来算算4!由于3!/10=0.6;4!/10=1.2这说明可以除10.这时10的幂指数应加1.然后进行4!/100=0.12不能进行除10.依次类推.计算的时候应尽量保证获得的商