本文主要是介绍hdu 1018题 Big Number,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接: http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=2§ionid=3&problemid=3
利用对数。
以10为例。
log10(10)+log10(9)+log10(8)+……+log10(1)=6.55976
原理:
10^6.55976=10!
log10(10^6.55976)=log10(10!)
注意事项:别用ceil函数。当指数是整数时,会产生错误。
代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{int n;double x, sum ;cin >> n;while (n--){sum = 0;cin >> x;while (x)sum += log10(x--);cout << (int)sum + 1 << endl; }return 0;
}
这篇关于hdu 1018题 Big Number的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!