美团笔试后台方向

求整数n内所有数字位数和的问题...不管怎么样AC率都只有40%,但是和穷举法比较了也没出错。不知道哪里没考虑到...
全部评论
整数1234计算位数, 9*1 + 9*10*2+9*10^2*3+(1234-999)*4   ,用long,以上思路可AC
点赞
送花
回复 分享
发布于 2018-04-20 21:33
。。。
点赞
送花
回复 分享
发布于 2018-04-20 21:27
国泰君安
校招火热招聘中
官网直投
用long
点赞
送花
回复 分享
发布于 2018-04-20 21:27
。。。。Orz,我也是怎么跑都是百分之40.。。。
点赞
送花
回复 分享
发布于 2018-04-20 21:27
代码粘到网页里时间刚到 还没提交是不是保存不了了
点赞
送花
回复 分享
发布于 2018-04-20 21:27
你的结果是int型的吧,我用long型和bigInteger都是过了90%,那就是不知道有什么情况没考虑。
点赞
送花
回复 分享
发布于 2018-04-20 21:27
我也....
点赞
送花
回复 分享
发布于 2018-04-20 21:28
是不是10的9次方   没用long啊
点赞
送花
回复 分享
发布于 2018-04-20 21:28
https://paste.ubuntu.com/p/PgwtDmCtM2/ 
点赞
送花
回复 分享
发布于 2018-04-20 21:28
肯定是哪个变量忘了用long。。。
点赞
送花
回复 分享
发布于 2018-04-20 21:30
感觉这道题好像做过。。
点赞
送花
回复 分享
发布于 2018-04-20 21:34
可以看看我刚发的帖子
点赞
送花
回复 分享
发布于 2018-04-20 21:34
Java int是4个字节 32位的2亿多 10^9才1亿啊,应该不存在楼上说的情况啊
点赞
送花
回复 分享
发布于 2018-04-20 21:37
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int count = scanner.nextInt(); while (count-- > 0) { int number = scanner.nextInt(); int start = 1; long result = 0; while (number > Math.pow(10, start)) { result += (Math.pow(10, start) - Math.pow(10, start - 1)) * start; start += 1; } if (number == Math.pow(10, start)) { result += 1; } result += (number - Math.pow(10, start - 1) + 1) * start; System.out.println(result); } } }
点赞
送花
回复 分享
发布于 2018-04-20 21:41
赛马网,真的是渣,不知道咋就是0,谁贴个代码,让我也死的明白
点赞
送花
回复 分享
发布于 2018-04-20 21:43
我都改成long long就ac了
点赞
送花
回复 分享
发布于 2018-04-20 21:45
存结果的那个变量得用long
点赞
送花
回复 分享
发布于 2018-04-20 21:51
还有人比我***吗。。。。main后面括号里忘记了写参数。。。。一直是0.。。。。浪费了好多时间!!
点赞
送花
回复 分享
发布于 2018-04-20 21:54
使用long long就没有问题了
点赞
送花
回复 分享
发布于 2018-04-20 21:54
用long
点赞
送花
回复 分享
发布于 2018-04-20 22:35

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务