Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jassak

sequencia

Recommended Posts

Utilizando o comando for, escreva um programa para calcular a soma dos

20 primeiros termos da série:

100 99 98 97

_ + _ + _+ _...

0! 1! 2! 3!

 

Para calcular o fatorial no denominador criar uma função com a seguinte

assinatura:

public static int fatorial(int num)

 

sera que alguem pode me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra ficar mais fácil crie uma função que receba um número e retorne seu fatorial.

Voce consegue fazer isso?

 

Depois fica simples.

Faça um loop de 0 até 19 "20 vezes".

 

somatoria <- 0
para i de 0 ate 19 faca
   somatoria <- somatoria + (100-i)/fatorial(i)
fimpara

sim isso mesmo..

 

100/0! + 99/1!+98/2!...

 

isso com os 20 primeiros termos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

int numerador = 100;

 

//prossesamento dos dados

 

for(int i = 0; i < 19; i++){

 

numerador = numerador-1;

 

soma +=soma(numerador/ fatorial(i));

 

System.out.println("o fatorial e = "+fatorial(i));

 

}saida +="\n\t a soma ="+ soma;

 

System.out.println(saida);

Compartilhar este post


Link para o post
Compartilhar em outros sites

a funcao eu fiz assim:

 

public static double fatorial(double n){
	
		double fat = 1.0;
	
		while (n > 0 ){
					
			fat *=n;
			
			n--;
			
		}// fim while
		
		return fat;
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites
import java.util.HashMap;

public class soma {
public static HashMap<Integer, Double> lista = new HashMap<Integer,Double>();

public static double fatorial(int num) {
	if(lista.isEmpty()) {
		lista.put(1,1.0);
		return 1.0;
	} else {
		if (num > 1 && lista.containsKey(num-1)) {
			lista.put(num, num*lista.get(num-1));
			return lista.get(num);
		} else
			return 1.0;
	}
}

public static void main(String[] args) {
	final Integer termos = 5;
	Double inicio = 100.0;
	Double soma = 0.0;
	for(int i=0;i<termos;i++) {
		soma+=inicio/fatorial(i);
		System.out.println(inicio+"/"+i+"!");
		inicio--;
	}
	System.out.println(soma);
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim isso mesmo..

 

100/0! + 99/1!+98/2!...

 

isso com os 20 primeiros termos.

Um jeito simples através da procedural em vez de usar POO :

 

CODE
#include <stdio.h>

 

float fat(float a){

 

if (a==0) return 1;

else return a*fat(a-1);

}

 

int main(){

float temp, soma =0;

int i = 0;

temp = 100;

for (i=0;i<20;i++){

soma += temp/fat(i);

temp--;

}

 

printf("A soma é : %.2f", soma);

 

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.