Puedo pensar en dos formas. Suponiendo que en su caso, básicamente no se le permite el operador “%”, el primero es esencialmente el operador de módulo que usa solo división y resta int.
Método 1
def isMultipleOf3 (n): return (n - 3 * (n / 3)) == 0
Método 2
Este era un truco inteligente que aprendí sobre múltiplos de 3 cuando era un niño, por lo que esto no se trasladará bien a otros divisores. Cuando sumas los dígitos de cualquier número y los sumas hasta que termines con un solo dígito, si obtienes 3, 6 o 9, sigue siendo un múltiplo de tres 🙂
Esto también se basa en la implementación del operador de módulo simplemente usando multiplicaciones y división.
- ¿Podemos implementar la estructura de datos de la cola usando la estructura de datos de la pila?
- ¿Hay algún proceso o conjunto de preguntas que uno debería hacer al resolver problemas tácticos de ajedrez?
- ¿Cómo podemos decir que la búsqueda binaria es un algoritmo rápido?
- ¿Cuáles son algunas características de los datos de imágenes faciales que se pueden utilizar para alimentar los algoritmos de aprendizaje automático?
- ¿Cuál es la mejor manera de analizar un currículum en los campos de la base de datos? ¿Qué hacer si tiene muchos currículums y necesita que los datos se extraigan en elementos individuales que se pueden colocar en una base de datos?
def multipleOfthree (n): si n <10: si n == 0 o n == 3 o n == 6 o n == 9: # es múltiplo de 3 volver 1 más: # No es múltiplo de 3 volver 0 más: # Suma los dígitos t = n suma = 0 mientras t! = 0: suma = suma + t - 10 * (t / 10) t = t / 10 return multipleOfthree (suma)