Pow gente qro pedir desculpa pelo engano ai, só me dei conta que tinha postado no Avançado depois que cliquei, por isso coloquei o “PS” no primeiro post!
Mas sem perder o foco do problema o que realmente estou buscando é a formula matematica que resolve aquele laço.
deu uma lida aqui e atualizei o metodo, mas não ajuda muito na velocidade, quando em grandes proporções.
samuel.ramos
Bom dia…
Vc quer somar um valor que é recebido como parâmetro de 1 até N?
Se for isso… Faça isto aqui…
packageSomatorio;publicclassTeste{/** * @param args */publicstaticvoidmain(String[]args){// TODO Auto-generated method stubSystem.out.println("Soma: "+somatorio(40));}publicstaticintsomatorio(intnum){intsoma=0;for(inti=0;i<num;i++){soma+=num;}returnsoma;}}
guisantogui
samuel.ramos:
Bom dia...
Vc quer somar um valor que é recebido como parâmetro de 1 até N?
Se for isso... Faça isto aqui...
packageSomatorio;publicclassTeste{/** * @param args */publicstaticvoidmain(String[]args){// TODO Auto-generated method stubSystem.out.println("Soma: "+somatorio(40));}publicstaticintsomatorio(intnum){intsoma=0;for(inti=0;i<num;i++){soma+=num;}returnsoma;}}
Não, meu problema é na matematica qro transformar esse metodo:
Contam que Gauss encontrou essa razão matemática aos 8 anos de idade.
Só tem uma pequena diferença nos algoritimos, nesse ele sabia de qual numero começar (1), mas no meu algoritimo eu passo o numero de inicio (i) e o de fim (tamAtual)!
Contam que Gauss encontrou essa razão matemática aos 8 anos de idade.
Só tem uma pequena diferença nos [size=18]algoritimos[/size][size=10] [/size], nesse ele sabia de qual numero começar (1), mas no meu algoritimo eu passo o numero de inicio (i) e o de fim (tamAtual)!
Analise melhor o codigo antes!
Você ta brincando né ?
1 ) algoritmos* e não algoritimos
2 ) Ta na hora de você pensar um pouco né !
Agora entendi o pq o palavrão do pedroroxd a minha vontade é %&^*&
guisantogui
Gente consegui chegar em uma formula
((tamAtual-i+1)*(tamAtual-i))*3
classe completa:
packageTeste;publicclassTeste{publicstaticintsomaMen(inti){return((i+1)*i)/2;}publicstaticintsomaMai(inti,inttamAtual){return((tamAtual-i+1)*(tamAtual-i))*3;/*int maiores = 0; for(;i <= tamAtual; i++){ maiores += i; } return maiores;*/}publicstaticvoidconfeitaria(){StringBuildersb=newStringBuilder();for(inttamRua=8;tamRua<50000;tamRua++){for(inti=5;i<tamRua;i++){if(somaMen(i)==somaMai(i,tamRua)){sb.append("\nConf ");sb.append(i);sb.append("\nRua ");sb.append(tamRua);System.out.println(sb.toString());}}}}
O problema que só funciona para quando a rua tem tamanho 49, a posição seria a 35 e o resultado 630, alguem sabe me dizer onde tenho que mexer para que funcione para os outros casos?
MaiqueL
…
fesaab
cara, nao to entendendo o que vc quer fazer…
dah uma explicada ai…
guisantogui
Eu tenho q comparar o metodo somaMai(int, int) com o somaMen(int) e se eles forem iguais eu printo se não, não!
Mas agora eu to tentando formular uma formula para o metodo somaMai(int, int) ficar mais eficiente!
guisantogui
Alguem?
pedroroxd
public static Integer somatorioNPrimeirosInteiros(Integer n) {
return (n * (n+1)) / 2;
}
Foi só seguir o link de uma das respostas. Evita o loop, é um método matemático.
T
Tiago_Borghi
guisantogui:
Galera pelo amor de Deus!
to precisando mais do que nunca da ajuda de voces!
Preciso fazer um somatório pro seguinte laço de repetição
Eu tinha feito assim com o sinal de menos, não testei, mas será que essa alteração para mais funciona certinho?
mesmo assim obrigado pela contribuição! Vou testar qdo puder
T
Tiago_Borghi
guisantogui:
public int somaMai(int i, int tamRua){
return (tamRua-i)*(tamRua-i+1)/2;
}
Eu tinha feito assim com o sinal de menos, não testei, mas será que essa alteração para mais funciona certinho?
mesmo assim obrigado pela contribuição! Vou testar qdo puder
A questão é você entender a lógica guisantogui.
A fórmula para somar elementos de uma PA da forma que você propôs é:
Soma = [(a1 + an) * n]/2. Onde a1 é o primeiro elemento; an é o último elemento; e n é o número de elementos. Para uma PA de razão 1, o número de elementos é a diferença entre o an e a1 somado ao valor 1, pois os dois valores (an e a1) são inclusos na somatória.