黑马程序员技术交流社区
标题:
各位大神来个解题思路
[打印本页]
作者:
Orangeapp
时间:
2015-9-27 22:39
标题:
各位大神来个解题思路
求1000!的结果中包含多少个0 1000! = 1×2×3×4×5×...×999×1000
各位大神来个解题的思路呗!!!
作者:
Orangeapp
时间:
2015-9-27 22:41
没有想明白
作者:
maxwell247
时间:
2015-9-28 00:30
请善用搜索
http://bbs.itheima.com/thread-109057-1-1.html
作者:
朦胧色彩
时间:
2015-9-28 11:44
本帖最后由 朦胧色彩 于 2015-9-28 12:15 编辑
用数组来保存结果
class Test
{
public static void main(String[] args)
{
//求1000!,就是1*2*3*4*5*....*1000
int[] arr = new int[1000000];// 存储1000!的结果,我想1000000位足够了吧
arr[1] = 1;
int numindex = 1;// 求出来值的是多少位数
for(int i = 1; i <= 1000; i++)
{
for(int j = 1; j <= numindex; j++)
arr[j] *= i;
// 判断每一位是不是大于等于10,是的话往前就进1
for(int k = 1; k < numindex; k++)
if(arr[k] >= 10)
{
arr[k+1] += arr[k] / 10;
arr[k] %= 10;
}
// 最高位也不得>=10
while(arr[numindex] >= 10)
{
arr[numindex + 1] += arr[numindex] / 10;
arr[numindex] %= 10;
numindex++;
}
}
int counts = 0;
// 从最高位往后打,判断如果是0就+1
for (int k = numindex; k >= 1; k--) {
if(arr[k]==0)
counts++;
}
System.out.println(counts);
}
}
复制代码
作者:
Synaric
时间:
2015-9-28 11:51
我的想法是遍历1-1000,找到被2、5整除的数
作者:
插兜
时间:
2015-9-28 13:15
感叹号不是非的意思吗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2