社区
数据结构与算法
帖子详情
求思路
saintqdd
2008-10-08 03:32:53
给定连续自然数的开始A,结束B(0 <A,B <=1000000),把A到B的数乘起来,乘积可以超过int32.求出这个乘积的前5个数字
比如 1*2*...10=3628800 那么前5个数字就是 36288.
...全文
167
6
打赏
收藏
求思路
给定连续自然数的开始A,结束B(0 <A,B <=1000000),把A到B的数乘起来,乘积可以超过int32.求出这个乘积的前5个数字 比如 1*2*...10=3628800 那么前5个数字就是 36288.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
adrian_yang84
2008-10-08
打赏
举报
回复
我有个思路,楼主试下吧。设A为m位数,B为n位数,A乘B:现假设A的末位不知道,最小为0,最大为9,所以这两种情况下乘积差为(9-0)*B,小于10B,所以乘积的最多末(n+1)位有问题,前面的位是有保证的。因此可以先用对数的方法,算出A到B乘积有多少位,再用上面的方法按照精度将乘数的末几位取0,这样就不参与运算了,满足int32的要求。
江王
2008-10-08
打赏
举报
回复
硬来是不行的, 用对数
log(A1*A2*An) = log(A1)+log(A2)+...log(An)
结果 Fn 估计也会很大,但将减去一些整数部分, 使得
5 <= Fn < 6
比如 3296.3242 --> 5.3242
再求反对数, 整数部分5即是你要的结果
saintqdd
2008-10-08
打赏
举报
回复
double显然不行,你去算算1000000!,不是double能放的下的
rover___
2008-10-08
打赏
举报
回复
[Quote=引用 2 楼 galois_godel 的回复:]
直接用double,
[/Quote]
没有什么障碍
galois_godel
2008-10-08
打赏
举报
回复
直接用double,
conquersky
2008-10-08
打赏
举报
回复
建议 去看看mod 相乘运算的法则 ,你就回了~~
MySQL 性能优化(
思路
拓展及实操)
Re: MySQL 性能优化(
思路
拓展及实操) ================================= # 优化
思路
优化 MySQL 数据库是数据库管理员或数据库开发人员的必备技能。MySQL优化一方面需要找出系统的瓶颈,提高 MySQL 数据库整体的...
C# 将截屏图片jpg转为YUV格式,再进行H264压缩成视频,
求
思路
,
求
源码?
C# 将截屏图片jpg转为YUV格式,再进行H264压缩成视频,
求
思路
,
求
源码?
c语言下
求
平均值的几种
思路
思路
1题目看上去很简单,直接给出第一种
思路
int a = 3; int b = 5; int avg = (a + b) / 2;看上去没什么问题,但是一旦整形溢出,这个
求
法就会出现不可预料的错误所以下面有另一种
求
法int avg = a / 2 + b / 2;但是...
表达式
求
值
思路
对一个表达式进行
求
值,需要把
简单算法:
求
“完数”
一个数如果恰好等于他的因子之和,这个数就称为...输入n,
求
n以内的所有完数 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int count =...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章