$ i需要迭代或循环大约10 ^ 15次如何减少执行时间 我试图减少int max值的时间,但我无法减少执行时间
int k=0;
for(int l = 1;l<1000000000;l++){
for(int i=0;i<40;i++){
if(a[i]==1){
for(long j=x;j<=k;j++){
if(j%(i+1)==0){
System.out.println(k);
}
}
}x++;
}
size += s.size();
k+=40;
if(size>n)break;
s.clear();
}
这里我无法循环
答案 0 :(得分:0)
这可能是微优化,但您可以将最外层的for循环与其下方的for循环相结合。注意从int到long的变化。
for(int l = 1;l<1000000000;l++){
for(int i=0;i<40;i++){
if(a[i]==1){
for(long j=x;j<=k;j++){
if(j%(i+1)==0){
成为这个:
for(long l = 1;l<40000000000L;l++){
if(a[l%40]==1){
for(long j=x;j<=k;j++){
if(j%(l%40+1)==0){
我还没有对此进行测量或模拟了一次性能测试。所以YMMV。