Olá pessoal, sou iniciante e estou com um problema modularizarão e nao entendo a logica da questão e os programas que desenvolvi para resolver não funcionam como o esperado justamente por eu não fazer ideia de como desenvolve-lo para que cumpra os testes pedidos.
a) Implemente um módulo que dados dois números inteiros positivos retorne a quantidade de dígitos comuns nas mesmas posições.
b) Elabore um programa que leia N pares de valores inteiros positivos, sendo N introduzido pelo utilizador e validado. Após a leitura dos N pares de valores o programa deve apresentar o par que tiver mais dígitos comuns nas mesmas posições. No caso de haver mais do que um par com a mesma quantidade de dígitos em comum, deve ser apresentado o último par encontrado.
O resultado deve conter apenas o par em causa no formato “numero1/numero2”.
No caso de não haver nenhum par de números que tenha algarismos em comum deve ser apresentada a mensagem: “sem resultados”.
Scannerscanner=newScanner(System.in);do{System.out.println("Introduza N:");n=scanner.nextInt();}while(n<=0);}while(n<=0);for(inti=0;i<n;i++){for(inti=0;i<n;i++){System.out.println("Introduza um novo par de números:");System.out.println("----------");System.out.println("Par 1:");par1=scanner.nextInt();System.out.println("Par 2:");par2=scanner.nextInt();intquantidadeDeDigComuns=quantidadeDigitosComunsNaMesmaPosicao(par1,par2);if(quantidadeDeDigComuns>maiorDigitosComuns){//CONTINUAR MAIS TARDEif(quantidadeDigitosComunsNaMesmaPosicao(par1,par2)>maiorDigitosComuns){maiorDigitosComuns=quantidadeDigitosComunsNaMesmaPosicao(par1,par2);maiorPar1=par1;maiorPar2=par2;}}inta=quantidadeDigitosComunsNaMesmaPosicao(11112,11222);System.out.println(a);System.out.println("O par que têm mais digitos em comum é o "+maiorPar1+" e "+maiorPar2+". Têm "+maiorDigitosComuns+" digitos em comum.");}
Você pode usar o operador módulo para separar os algarismo ou converter em String, separar em substring e depois reconverter em int.
Para tu ter um norte:
importjava.util.Scanner;publicclassVerificador{privateintnumeroAlgarismoV1=0;privateintnumeroAlgarismoV2=0;privateintcontadorV1=0;privateintcontadorV2=0;privateint[]valor1;privateint[]valor2;privatevoidseparador(intv1,intv2){intvlr1=v1;intvlr2=v2;/* * Conta o número de algarismos */while(vlr1>0){numeroAlgarismoV1++;vlr1/=10;}while(vlr2>0){numeroAlgarismoV2++;vlr2/=10;}valor1=newint[numeroAlgarismoV1];valor2=newint[numeroAlgarismoV2];contadorV1=numeroAlgarismoV1-1;contadorV2=numeroAlgarismoV2-1;/* * Preenche os vetores */while(v1>0){valor1[contadorV1--]=v1%10;v1/=10;}while(v2>0){valor2[contadorV2--]=v2%10;v2/=10;}}privateintverificarCorrespondencia(){intcontagem=0;if(numeroAlgarismoV1>numeroAlgarismoV2){for(inti=0;i<numeroAlgarismoV2;i++){if(valor1[i]==valor2[i])contagem++;}}elseif(numeroAlgarismoV1<numeroAlgarismoV2){for(inti=0;i<numeroAlgarismoV1;i++){if(valor1[i]==valor2[i])contagem++;}}else{for(inti=0;i<numeroAlgarismoV1;i++){if(valor1[i]==valor2[i])contagem++;}}returncontagem;}publicstaticvoidmain(String[]args){intvalorInformado1;intvalorInformado2;Scannerleitor=newScanner(System.in);Verificadorverificador=newVerificador();System.out.print("Valor 1: ");valorInformado1=leitor.nextInt();System.out.print("Valor 2: ");valorInformado2=leitor.nextInt();verificador.separador(valorInformado1,valorInformado2);System.out.println("");for(inti=0;i<verificador.numeroAlgarismoV1;i++){System.out.print(verificador.valor1[i]+" ");}System.out.println("\n");for(inti=0;i<verificador.numeroAlgarismoV2;i++){System.out.print(verificador.valor2[i]+" ");}System.out.println("\n");System.out.println("Correspondências: "+verificador.verificarCorrespondencia());leitor.close();}}