Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java操作长数_Java_Numbers_Long Integer_Operation - Fatal编程技术网

Java操作长数

Java操作长数,java,numbers,long-integer,operation,Java,Numbers,Long Integer,Operation,我一直在用java做一个数学例子,这个例子可以找到数字1和数字2(包括数字1和数字2)之间除以数字2、3或5的所有数字。我不需要所有这些数字,只需要有多少个数字 例如,如果输入10和100,它将返回67。 完成for语句,如果语句中有或符号,则为一 这对于较小的数字非常有用,但我需要使用类型“long”(变量必须是这种类型!)和最多18位的数字 所以当有数字时:12345678123456789和989898 for语句并不好,因为它需要很多时间。有没有更好、更快的解决办法?这是我认为唯一的办法

我一直在用java做一个数学例子,这个例子可以找到数字1和数字2(包括数字1和数字2)之间除以数字2、3或5的所有数字。我不需要所有这些数字,只需要有多少个数字

例如,如果输入10和100,它将返回67。 完成for语句,如果语句中有或符号,则为一

这对于较小的数字非常有用,但我需要使用类型“long”(变量必须是这种类型!)和最多18位的数字


所以当有数字时:12345678123456789和989898 for语句并不好,因为它需要很多时间。有没有更好、更快的解决办法?

这是我认为唯一的办法

public static void main(String[] args)
{
    long a = 111111111111111111l;
    long b = 111111111111115000l;       
    int match = 0;
    for (long i=a; i!=b; i++)
    {
        if( ((i % 2) == 0) && ((i % 3) == 0) && ((i % 5) == 0) )
            match++;
    }
    System.out.println(match);
}

它总是需要太多的时间,因为hee已经完成了n(b-a)循环…

您甚至还没有向我们展示您的解决方案,那么我们如何才能确定是否有更好的解决方案呢?正如现在所说的,a的位置从1号到2号,检查所有数字之间是否以2、3或5分开。但是如果使用这些大数字,需要花费很多时间,所以我想for语句不是很好吗?