Somatório

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

public int somaMai(int i, tamRua){
int maiores = 0;
for(int g = i; g< tamRua; g++){
maiores += g;
}
return maiores;

Já tentei inumeras formulas, mas nada funciona!
vlw

PS.: postei isso no avançado por engano se algum moderador ler pode tracar lá

Pra mim é um somatório simples de i até tamRua:

tamRua Σ i

http://www.guj.com.br/posts/list/202553.java#1024285

Só uma coisa…
o i está cendo inútil no programa…
Só serve para o “g” receber o valor dele… Você pode muito bem utilizar o i dentro do for.

[EDITADO MENSAGEM OFENSIVA]
Falar palavrão não. kkkk

http://www.guj.com.br/posts/list/202553.java

pedroroxd, tudo bem o algoritmo do guisantogui esta sem lógica.

Mas tem mais alguma coisa que você queira acrescentar ?

Pq sinceramente, não leva para o lado pessoal vc não agregou valor nenhum a este tópico.

[quote=MaiqueL]pedroroxd, tudo bem o algoritmo do guisantogui esta sem lógica.

Mas tem mais alguma coisa que você queira acrescentar ?

Pq sinceramente, não leva para o lado pessoal vc não agregou valor nenhum a este tópico.[/quote]
Você não viu o tópico editado…
O que eu falei é que ele duplicou tópico, e deveria ser trancado
Acabou que foi feito, e meu palavrão sensurado.
http://www.guj.com.br/posts/list/202553.java#1024318

censurado*

kkkk…

Ah beleza então.

[]`s

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.

Bom dia…
Vc quer somar um valor que é recebido como parâmetro de 1 até N?

Se for isso… Faça isto aqui…

package Somatorio;

public class Teste {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		System.out.println("Soma: " + somatorio(40));
	}

	public static int somatorio(int num) {
		int soma = 0;

		for (int i = 0; i < num; i++) {
			soma += num;
		}
		return soma;
	}

}

[quote=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…

[code]
package Somatorio;

public class Teste {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub

	System.out.println("Soma: " + somatorio(40));
}

public static int somatorio(int num) {
	int soma = 0;

	for (int i = 0; i < num; i++) {
		soma += num;
	}
	return soma;
}

}

[/code][/quote]

Não, meu problema é na matematica qro transformar esse metodo:

public  int somaMai(int i, tamRua){  
 int maiores = 0;  
 for(; i< tamRua; i++){  
 maiores += i;  
 }  
return maiores; 

Em uma formula matematica que me trara mais velocidade para quando eu rodar o algoritimo ele levar menos tempo!

http://sftcode.blogspot.com/2010/03/conhecer-metodos-matematicos-te-faz-um.html

Contam que Gauss encontrou essa razão matemática aos 8 anos de idade.

[quote=MaiqueL]http://sftcode.blogspot.com/2010/03/conhecer-metodos-matematicos-te-faz-um.html

Contam que Gauss encontrou essa razão matemática aos 8 anos de idade.[/quote]

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)!

Analise melhor o codigo antes! :wink:

[quote=guisantogui][quote=MaiqueL]http://sftcode.blo[color=red] [/color]gspot.com/2010/03/conhecer-metodos-matematicos-te-faz-um.html

Contam que Gauss encontrou essa razão matemática aos 8 anos de idade.[/quote]

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! :wink: [/quote]

Você ta brincando né ?

1 ) algoritmos* e não algoritimos

2 ) Ta na hora de você pensar um pouco né !

  1. Agora entendi o pq o palavrão do pedroroxd a minha vontade é %&^*&

Gente consegui chegar em uma formula

((tamAtual-i+1) * (tamAtual - i))*3

classe completa:

package Teste;

public class Teste {

    public static int somaMen(int i){
        return ((i+1)*i)/2;
    }

    public static int somaMai(int i, int tamAtual){
        return ((tamAtual-i+1) * (tamAtual - i))*3;

        /*int maiores = 0;
        for(;i <= tamAtual; i++){
        maiores += i;
        }
        return maiores;*/
    }

    public static void confeitaria(){
        StringBuilder sb = new StringBuilder();
        for(int tamRua = 8; tamRua < 50000; tamRua++){
            for(int i= 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?

cara, nao to entendendo o que vc quer fazer…
dah uma explicada ai…

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!

Alguem?