X es un buen número si después de rotar CADA dígito individualmente 180 grados, obtenemos un número válido que es diferente de X. Un número es válido si cada dígito sigue siendo un dígito después de la rotación. 0, 1 y 8 giran sobre sí mismos; 2 y 5 giran entre sí; 6 y 9 rotan entre sí, y el resto de los números no rotan a ningún otro número.
Solución Java
public int rotatedDigits(int N) { int result = 0; for(int i=1; i<=N; i++){ int j=i; boolean contains347 = false; boolean contains2569 = false; while(j!=0){ int mod = j%10; if(mod==2||mod==5||mod==6||mod==9){ contains2569=true; } if(mod==3||mod==4||mod==7){ contains347=true; } j=j/10; } if(!contains347&&contains2569){ result++; } } return result; } |