Eu fiz um algoritmo que faz um loop até um numéro MAX = 10000, pois não sei quais as restrições do programa. Com certeza há melhores formas de fazer, mas com os valores que testei, funcionou bem.
import java.util.*;
public class Alg{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
final int MAX = 10000;
int n, num, cont = 1, sum = 0, aux = 0, aux2 = 0;
int[] array = new int[5];
System.out.print("Informe a quantia de numeros a ser inserida: ");
n = scan.nextInt();
do{
System.out.print("Informe o numero a ser analisado: ");
num = scan.nextInt();
for(int i = 1; i < MAX-4; i++){
if(i + (i + 1) + (i + 2) + (i + 3) == num){
aux2 = i;
System.out.print("A soma de ");
for(int j = 1; j < 5; j++){
array[j] = aux2;
System.out.print(aux2);
if(j != 4)
System.out.print(" + ");
aux2++;
}
System.out.println(" = " + num);
sum = (i + (i + 1) + (i + 2) + (i + 3));
break;
}
}
if(num != sum) System.out.println("O numero nao possui sequencia consecutiva!");
num = sum = 0; cont = 1;
aux++;
}while (aux < n);
}
}
dúvida, algoritmo Java.
3. Existem números que podem ser obtidos como a soma de 4 números inteiros consecutivos. Ex: 1 + 2 + 3 + 4 = 10. Faça um programa que pergunte ao usuário quantos números ele pretende digitar. Em seguida, para cada número digitado pelo usuário, o programa deverá informar se o número possui a propriedade mencionada acima ou não (se tiver, o programa deverá informar qual a sequência de 4 números inteiros consecutivos que produz esse valor).
#atividade #Java #algoritmos
Para resolver essa questão, serão envolvidos conhecimentos de linguagem de programação Java.
Primeiramente precisamos perguntar ao usuário quantos números ele deseja digitar (número inteiro) e armazenar cada um deles. Para isso, iremos usar um vetor para gravar esses números, usaremos um vetor “double” pois o usuário pode digitar qualquer número.
O código começará assim:
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int n;
System.out.println("Quantos números você quer digitar?");
n = sc.nextInt();
double v[] = new double[n];
for (int i=0; i<n; i++){
v[i]=sc.nextDouble();
}
Como os quatro números precisam ser consecutivos, temos a seguinte equação para um número digitado, chamado m:
Assim, precisamos achar um valor x que seja igual a:
Todos os números somados precisam ser inteiros como exigido no enunciado, então o valor de x também é inteiro. Logo o resto da divisão de (m-6) por 4 deverá ser igual a zero. Assim, faremos um “if” para checar essa condição, utilizando o operador “%” que calcula o resto da divisão. Colocando tudo dentro de um laço de repetição “for” para analisar cada um dos números digitados separadamente.
Por fim, o resultado será mostrado ao usuário: se o número possui a propriedade ou não e qual a soma que resulta nele. O restante do código será:
for (int i=0; i<n; i++){
if(((v[i]-6)%4) ==0){
double x = ((v[i]-6)/4);
System.out.println("O número "+v[i]+" possui a propriedade");
System.out.println((v[i])+" = "+x+" + "+(x+1)+" + "+(x+2)+" + "+(x+3));
} else{
System.out.println("O número "+v[i]+" não possui a propriedade");
}
}
}
}
Para resolver essa questão, serão envolvidos conhecimentos de linguagem de programação Java.
Primeiramente precisamos perguntar ao usuário quantos números ele deseja digitar (número inteiro) e armazenar cada um deles. Para isso, iremos usar um vetor para gravar esses números, usaremos um vetor “double” pois o usuário pode digitar qualquer número.
O código começará assim:
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int n;
System.out.println("Quantos números você quer digitar?");
n = sc.nextInt();
double v[] = new double[n];
for (int i=0; i<n; i++){
v[i]=sc.nextDouble();
}
Como os quatro números precisam ser consecutivos, temos a seguinte equação para um número digitado, chamado m:
Assim, precisamos achar um valor x que seja igual a:
Todos os números somados precisam ser inteiros como exigido no enunciado, então o valor de x também é inteiro. Logo o resto da divisão de (m-6) por 4 deverá ser igual a zero. Assim, faremos um “if” para checar essa condição, utilizando o operador “%” que calcula o resto da divisão. Colocando tudo dentro de um laço de repetição “for” para analisar cada um dos números digitados separadamente.
Por fim, o resultado será mostrado ao usuário: se o número possui a propriedade ou não e qual a soma que resulta nele. O restante do código será:
for (int i=0; i<n; i++){
if(((v[i]-6)%4) ==0){
double x = ((v[i]-6)/4);
System.out.println("O número "+v[i]+" possui a propriedade");
System.out.println((v[i])+" = "+x+" + "+(x+1)+" + "+(x+2)+" + "+(x+3));
} else{
System.out.println("O número "+v[i]+" não possui a propriedade");
}
}
}
}
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar