¿Cuál es la mejor manera de averiguar si la división de dos números arrojará un resto? Tomemos como ejemplo, tengo una matriz con valores {3,5,7,8,9,17,19}. Ahora necesito encontrar el divisor perfecto de 51 del conjunto de arriba. ¿Hay alguna forma más simple de resolver esto?¿Cómo encontrar el resto de una división en C?
Respuesta
Usted puede utilizar el operador %
para encontrar el resto de una división, y comparar el resultado con 0
.
Ejemplo:
if (number % divisor == 0)
{
//code for perfect divisor
}
else
{
//the number doesn't divide perfectly by divisor
}
El módulo y el recordatorio son diferentes para los números negativos: http://stackoverflow.com/questions/13683563/whats-the-difference-between-mod-and-remainder – calandoa
buen punto, pero no veo cómo eso cambia el cheque para la división perfecta –
La respuesta está bien con respecto a la pregunta, pero la C es muy borrosa sobre la relación entre%, módulo y operadores de resto, y su declaración fue un poco imprecisa, así que acabo de agregar un enlace para aclarar este punto. – calandoa
Utilice el operador de módulo %
, devuelve el resto.
int a = 5;
int b = 3;
if (a % b != 0) {
printf("The remainder is: %i", a%b);
}
@Joey - ¿por qué eliminaste el ejemplo? – MByD
No lo hice; Acabo de corregir un error tipográfico y agregué el signo del operador. Podría ser que las ediciones simultáneas estuvieran chocando aquí. SO es incluso peor que MediaWiki. Es decir. cuando lo estaba editando, solo vi una frase y tampoco recibí una notificación sobre modificaciones concurrentes. Lo siento:/ – Joey
Mis disculpas ... Pensé que tenías algún problema con mi ejemplo ... ¡Y gracias! – MByD
Todas las respuestas anteriores son correctas. Simplemente proporcione con su conjunto de datos para encontrar el divisor perfecto:
#include <stdio.h>
int main()
{
int arr[7] = {3,5,7,8,9,17,19};
int j = 51;
int i = 0;
for (i=0 ; i < 7; i++) {
if (j % arr[i] == 0)
printf("%d is the perfect divisor of %d\n", arr[i], j);
}
return 0;
}
El OP probablemente debería aclarar si 3 o 9 deberían considerarse el divisor perfecto en esos casos. Asumo 9 porque de lo contrario no tiene sentido que esté en la matriz. En ese caso, deberá realizar un ciclo en orden inverso. – tinman
- 1. ¿Cómo encontrar el resto de una división en Ruby?
- 2. Resto de la división flotante
- 3. ¿Cómo obtener el cociente y el resto de la división
- 4. Encuentra el resto de la división de un número
- 5. ¿Por qué no hay operación de resto de división para flotantes/dobles en C y C++?
- 6. ¿Cómo se hace el módulo o el resto en Erlang?
- 7. División doble en C
- 8. División de matrices en C++
- 9. División de cadenas en C++
- 10. cómo comprobar si hay una división por cero en c
- 11. ¿Cómo puedo realizar una división de 64 bits con una instrucción de división de 32 bits?
- 12. ¿Cómo obtener fracciones en una división entera?
- 13. ¿Seleccionar filas donde el resto (módulo) es 1 después de la división por 2?
- 14. Cómo encontrar el tamaño de una clase en C#
- 15. ¿Una buena manera de hacer una división rápida en C++?
- 16. LINQ Cómo tomar un registro y omitir el resto C#
- 17. Hacer una división fija en el desplazamiento
- 18. cómo realizar la división en el intervalo de tiempo
- 19. Omitir líneas de archivo hasta encontrar una coincidencia, luego generar el resto
- 20. C# problema de división sencilla
- 21. cadena. Función de división en delimitador de tabulación C#
- 22. ¿Cómo tener una "división personalizada()" en una lista con strtk?
- 23. División de enteros en C++ 11
- 24. C++ - tipo de la división?
- 25. ¿Puedo omitir el resto en una declaración javascript en línea?
- 26. C: encontrar el número de elementos en una matriz []
- 27. ¿Cómo causar una división intencional por cero?
- 28. Problemas con la división en C#
- 29. ¿Cómo implementar división por adición?
- 30. División de una lista en rangos alfabéticos
Encontré el rango '{3,5,7,8,9,17,19}' bastante sospechoso. * Parece casi * que estás usando primos aquí, pero 8 no es primo y faltan 11 y 13 ... – DarkDust