A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 无奈的我+.l   /  2014-5-23 09:47  /  5832 人查看  /  36 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

Aron 发表于 2014-5-23 18:18
这个问题我给你解答  因为我就是这么写的 确实如此int的话范围不够 无法得出1000!这样大的数
但是java里 ...

楼主的代码是对的,你这个代码有一点点小问题。最后答案应该是249个,上面这个运行得出的是472个,稍分析可知,题目要求的是乘积最后有多少个0,也就是能被10的多少次方整除,这个代码里遍历了结果的每一位,只要有0就计数,假设结果是2340003200应该输出2而不是5.修改部分代码即可满足。将for循环用下面代码替换:
  1.         int len = s.length()-1;
  2.         while(s.charAt(len) == '0')// 遇到第一个不为0的位置就结束循环
  3.         {
  4.                 N++; // 计数
  5.                 len--;// 从后往前遍历
  6.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马