求一个大数的位数
2017-04-08 21:36
92 查看
给一个数N,求N的阶乘的位数。
求一个大数的位数可以这样来求:
x*y的位数表示为log10(x*y)=log10(x)+log10(y)+1;
注意log10(m);这个函数的参数和返回值的类型都是double
这个题目要注意其中的一些强制转换。没有的话程序会报错。
求一个大数的位数可以这样来求:
x*y的位数表示为log10(x*y)=log10(x)+log10(y)+1;
注意log10(m);这个函数的参数和返回值的类型都是double
#include<iostream> #include<stdio.h> #include<math.h> using namespace std; int main() { int N; while(scanf("%d",&N)!=EOF) { while(N--) { int m; double sum=0; scanf("%d",&m); for(int i=1;i<=m;i++) { sum+=log10((double)i); } printf("%d\n",(int)sum+1); } } return 0; }
这个题目要注意其中的一些强制转换。没有的话程序会报错。
相关文章推荐
- poj1423---求一个大数的位数方法,我猜网站上统计输入字符少于多少位的那个算法
- 杭电ACM OJ 1018 Big Number 两数相乘出一个大数,求大数的位数 注意log的使用
- 计算一个大数n的阶乘的位数宽度(十进制)(log i累加法 )
- 计算一个大数n的阶乘的位数宽度(十进制)(log i累加法 )
- 计算一个大数n的阶乘的位数宽度(十进制)转载
- 一个c程序产生6位数的随机密码
- 获得一个浮点数的小数位数
- c语言---一个数x中值为1的位数(3个版本)
- js的大数运算 跟经典的收藏 结合前一篇的收藏 解决工作中的一个大数进制转换问题
- 求大数阶乘结果的位数
- C/C++ 结构体的一个高级特性 ―― 指定成员的位数
- 3.7.1 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
- 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
- JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数.
- hdu 的一个简单的大数加法
- 关于大数的阶乘与确定阶乘结果的位数
- 写一个去除AI2XAML注释及多余数字位数的WPF窗体程序
- JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数.
- 如何获取一个int型数字的位数
- 一个自定义位数的php多用户计数器代码