Last active
December 15, 2015 12:20
-
-
Save ckob/d7e4b4ed2d41683cfe4c to your computer and use it in GitHub Desktop.
Examen Iterativa 10/12/2015
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(123456789)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(123)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(1234)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(12345)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(1233)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(12334)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(12345561)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(1234556123)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(12)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(1)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(221)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(213)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(123345)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(152335)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(15235)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(15235)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(43543)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(6455)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(56778)); | |
| System.out.println(!conteUnaSerieCapicuaDeLlargadaAlMenys3(8564436)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(121345678)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(123456578)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(123456547)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(123456657)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(12321)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(123324567)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(121)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(1232)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(12332)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(123324)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(123321)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(56667)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(6768)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(67879)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(167769)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(6776)); | |
| System.out.println(conteUnaSerieCapicuaDeLlargadaAlMenys3(67769)); | |
| System.out.println(figuraSensePrint(0,0)); | |
| System.out.println(figuraSensePrint(0,1)); | |
| System.out.println(figuraSensePrint(1,0)); | |
| System.out.println(figuraSensePrint(1,1)); | |
| System.out.println(figuraSensePrint(3,5)); | |
| System.out.println(figuraSensePrint(5,3)); | |
| System.out.println(figuraSensePrint(6,3)); | |
| System.out.println(figuraSensePrint(6,4)); | |
| System.out.println(figuraSensePrint(6,5)); | |
| System.out.println(figuraSensePrint(6,6)); | |
| System.out.println(figuraSensePrint(6,7)); | |
| System.out.println(figuraSensePrint(6,8)); | |
| System.out.println(figuraSensePrint(6,9)); | |
| System.out.println(figuraSensePrint(8,3)); | |
| System.out.println(figuraSensePrint(8,4)); | |
| System.out.println(figuraSensePrint(8,5)); | |
| System.out.println(figuraSensePrint(8,6)); | |
| System.out.println(figuraSensePrint(8,7)); | |
| System.out.println(figuraSensePrint(8,8)); | |
| System.out.println(figuraSensePrint(8,9)); | |
| System.out.println(figuraSensePrint(8,10)); | |
| System.out.println(figuraSensePrint(10,10)); | |
| System.out.println(figuraSensePrint(12,12)); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| * Program.java 1.0 Dec 10, 2015 | |
| * | |
| * Copyright 2015 Charly Koch Busquets <charlykoch@gmail.com> | |
| * | |
| * This is free software, licensed under the GNU General Public License v3. | |
| * See http://www.gnu.org/licenses/gpl.html for more information. | |
| */ | |
| public class Program { | |
| /** | |
| retorna true si el nombre passat com a argument contè una sèrie | |
| capicua de llargada al menys 3 a l'interior | |
| exemple | |
| 123456789 no | |
| 121345678 sí 121 | |
| 123456578 sí 565 | |
| 123456547 sí 45654 | |
| 123456657 sí 5665 | |
| n és un número positiu | |
| no cal comprovació | |
| cap print | |
| */ | |
| public static boolean conteUnaSerieCapicuaDeLlargadaAlMenys3(int n){ | |
| int ndigits = numberOfDigits(n); // Calculem el nombre total de digits | |
| for (int l=3; l<=ndigits; l++){ // Començant per el 3, i fins un maxim del total de digits... | |
| for (int i=l; i<=ndigits; i++) { // Anem provant de si un nombre de longitud "l" i amb posició "i" es capicua... | |
| if (isPalindromic(digitsAt(n, i, l))) { // Amb el métode isPalindromic que ja vem fer als exercicis. | |
| return true; // Retorna true a la primera que es cumpleix | |
| } | |
| } | |
| } | |
| return false; // Retorna fals si arriba aquí, es a dir, que no ha trobat cap nombre capicua | |
| } | |
| public static int numberOfDigits(int n) { // Retorna el nombre de digits total del nombre "n" | |
| n = Math.abs(n); | |
| int sum=0; | |
| for(int i = 1; i <= n; i*=10) | |
| if(n%i!=n) | |
| sum++; | |
| return sum; | |
| } | |
| public static boolean isPalindromic(int n) { // Fet als exercicis. | |
| int max = numberOfDigits(n); // Calculem el nombre de digits per utilitzarlo al bucle com a "tope" | |
| int x = max; // Guardem a "x" el nombre de digits per començar "desde adalt" | |
| for (int i=1;i<=max;i++) { // Per cada posició anem sumant 1 a "i" i restant 1 a "x" ... | |
| if (digitsAt(n,i,1)!=digitsAt(n,x,1)) return false; // Per comprovar si els dos nombres son iguals | |
| x--; | |
| } | |
| return true; | |
| } | |
| public static int digitsAt (int n, int i, int l) { // Retorna les xifres "l" que estan a la posició "i" del nombre "n" | |
| n = (int)(n%Math.pow(10, i)); | |
| n = (int)(n/Math.pow(10, i-l)); | |
| return n; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| * Program.java 1.0 Dec 10, 2015 | |
| * | |
| * Copyright 2015 Charly Koch Busquets <charlykoch@gmail.com> | |
| * | |
| * This is free software, licensed under the GNU General Public License v3. | |
| * See http://www.gnu.org/licenses/gpl.html for more information. | |
| */ | |
| public class Program { | |
| /** | |
| * Dibuixa una figura en funció del arguments tal com als exemples | |
| * | |
| * @param n1 | |
| * @param n2 | |
| * @return la figura | |
| */ | |
| public static String figuraSensePrint(int n1,int n2){ | |
| int max = max(n1,n2); | |
| String s="\nFigura "+n1+" " +n2+":\n"; // Creem l'string on guardar tot el string final. | |
| String numeros=""; // Creem l'string on guardar la seria de nombres que apareix al dibuix | |
| for (int n=0;n<max; n++) numeros+="_"+n%10; // Guardem a la variable els nombres. Es fa n%10 per l'exemple 12-12, que apareix 0 i 1 en lloc de 10 i 11. Es dibuixa la serie de nombres fins arribar al maxim dels dos. | |
| numeros += "_m_x_"; // Es guarda a la variable el final de la linia de nombres | |
| for (int y=1;y<=n1;y++) { // Es pren n1 com a referencia per al total de linies | |
| s+="@\n"; // A cada linia, afegim una @ i un salt de linia. Al principi ja que als exemples apareix una al principi sempre que sigui >= a 1, i al final de tot no. | |
| for (int f=1;f<y;f++) s+="+"; // Dibuixem els "+". Aumenten proporcionals a les linies. | |
| for (int x=1;x<=Math.round(n2/2.);x++) s+="*"; // Dibuixem els "*". Un total de la meitat d'n2 redondejat a l'alça | |
| for (int w=1;w<=y;w++) { // Per cada linia del dibuix... | |
| if (y==n2/2) { // Si la linia es la nº n2/2... | |
| s+=numeros; // la dibuixem | |
| break; // i sortim del bucle | |
| } | |
| else s+=""; // Si no es així, dibuixem espais fins arribar a la linia que voliem (a dalt) | |
| } | |
| } | |
| return s; // Retornem tot l'string pero no el dibuixem directament. | |
| } | |
| public static int max (int a, int b) { | |
| if (a>b) return a; | |
| return b; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment