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