AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

sexta-feira, 14 de setembro de 2012

Programação básica (estruturada) - Exercício 2


Observe a seguinte propriedade que alguns números maiores que 1000 e menores que 9999 possuem:
  Número:        abcd
                       (ab) + (cd) = (ef)
                       (ef)**2 = abcd

  Exemplo:        3025
                       30+25 = 55
                       55**2 =3025
 Faça um programa que imprima todos os números que satisfaçam esta propriedade


Código Java

//Autor: Thiago Campos
//Data: 14.09.2012

/**
 *
 * @author Thiago
 *
import javax.swing.JOptionPane;
/
public class NumSatisfaz {
    public static void main(String[] args){
        //variaveis
        String todos ="";
        String abcdStr ="";
       
        int abcd = 1000;
        int ab = 0;
        int cd = 0;
        int ef = 0;
        int cont = 0; //contador
       
        //processamento
        while(abcd <=9999){
            abcdStr = String.valueOf(abcd); //converte o vlr int para String
           
            //quebra a String em 2 termos e converte para int
            ab = Integer.parseInt(abcdStr.substring(0, 2));
            cd = Integer.parseInt(abcdStr.substring(2, 4));
           
            //soma dos termos int
            ef = ab + cd;
           
            //verifica se o quadrado da soma é = valor de entrada
            if (Math.pow(ef, 2) == abcd){
                cont++; //conta a qtd de vlr
                todos += String.valueOf(abcd) + "    "; //guarda tds os vlr iguais
            }
            abcd++; //incrementa o valor inicial
        } //fim do while
       
        //saida
        JOptionPane.showMessageDialog(null, "Apenas " + cont + " valor(es) satisfaz(em) a "
                + "\ncondição: " + " " + todos);
    } //fim do main
   
} //fim da classe

Nenhum comentário:

Postar um comentário