A demonstração aqui é um algoritmo de acumulação, como 1,2,3,4...n
Ou seja: soma = 1+2+3+4...+n;
Podemos fazer isso:
for (longo i = 1,v = valor; i <= v; i++) {
soma += eu;
}
soma de retorno;
}
/**
* Implementação de algoritmo de acumulação<br>
*
* @data 16/04/2013
* @autor Hongten
*
*/
classe pública AddArithmetic {
/**
* Loop para implementar o método de acumulação
* @param valor
* @retornar
*/
ciclo longo estático privado (valor longo) {
soma longa = 0;
for (longo i = 1,v = valor; i <= v; i++) {
soma += eu;
}
soma de retorno;
}
/**
* Método gaussiano:<code>(n+1)*n/2</code><br>
* você pode ler mais <a href="http://zhidao.baidu.com/question/411055258.html">Aqui</a>
* @param valor
* @retornar
*/
private static long gaosi(valor longo) {
soma longa = 0;
soma = (valor + 1) * valor / 2;
soma de retorno;
}
public static void main(String[] args) {
//Limpa a memória, mas pode não ser executado.
System.gc();
// você deve alterar o valor e obter resultados diferentes
valor longo = 10000000;
soma longa = 0;
início longo = System.currentTimeMillis();
soma = ciclo(valor);
final longo = System.currentTimeMillis();
System.out.println("Use o método de acumulação de loop para acumular de [1] a ["+valor+"], tempo gasto: ["+(fim - início) + "]ms, resultado: "+ soma);
//Limpa a memória, mas pode não ser executado.
System.gc();
iniciar = System.currentTimeMillis();
soma = gaosi(valor);
fim = System.currentTimeMillis();
System.out.println("Use o método gaussiano para acumular de [1] a ["+valor+"], tempo gasto: ["+(fim - início) + "]ms, resultado: "+ soma);
}
}
Claro, os resultados de funcionamento de máquinas com configurações diferentes são diferentes...
O status de operação da minha máquina: