Dados tres enteros no negativos A , B y N donde A no es cero , la tarea es encontrar el número de enteros menores o iguales a N cuyo módulo con A da el valor B .
Ejemplos:
Entrada: A = 6, B = 3, N = 15
Salida: 3
Explicación: Los números 3, 9 y 15 son menores o iguales que N (= 15) y su módulo con A (= 6) es igual a B ( = 3). Por lo tanto, la cuenta de tales números es 3.Entrada: A = 4, B = 1, C = 8
Salida: 2
Enfoque: El problema dado se puede resolver mediante el uso de una observación basada en las matemáticas . Siga los pasos a continuación para resolver el problema:
- Si el valor de B es al menos A , imprima 0 , ya que no puede haber ningún número cuyo módulo con A dé el valor B .
- De lo contrario, si el valor de B es 0 , imprima el valor de C/A como el recuento de los números cuyo módulo con A da el valor B.
- De lo contrario, realice los siguientes pasos:
- Inicialice una variable, digamos ans, con el valor mínimo de C / A .
- Si el valor de (ans * A + B) es menor o igual que N , incremente el valor de ans en 1 .
- Después de completar los pasos anteriores, imprima el valor de ans como el conteo de esos números cuyo módulo con A da el valor B.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to count numbers less than // N, whose modulo with A gives B void countValues(int A, int B, int C) { // If the value of B at least A if (B >= A) { cout << 0; return; } // If the value of B is 0 or not if (B == 0) { cout << C / A; return; } // Stores the resultant count // of numbers less than N int ans = C / A; if (ans * A + B <= C) { // Update the value of ans ans++; } // Print the value of ans cout << ans; } // Driver Code int main() { int A = 6, B = 3, N = 15; countValues(A, B, N); return 0; }
Java
// Java program for the above approach public class MyClass { // Function to count numbers less than // N, whose modulo with A gives B static void countValues(int A, int B, int C) { // If the value of B at least A if (B >= A) { System.out.println(0); return; } // If the value of B is 0 or not if (B == 0) { System.out.println(C / A); return; } // Stores the resultant count // of numbers less than N int ans = C / A; if (ans * A + B <= C) { // Update the value of ans ans++; } // Print the value of ans System.out.println(ans); } // Driver Code public static void main(String args[]) { int A = 6, B = 3, N = 15; countValues(A, B, N); } } // This code in contributed by SoumikMondal
Python3
# Python3 program for the above approach # Function to count numbers less than # N, whose modulo with A gives B def countValues(A, B, C): # If the value of B at least A if (B >= A): print(0) return # If the value of B is 0 or not if (B == 0): print(C // A) return # Stores the resultant count # of numbers less than N ans = C//A if (ans * A + B <= C): # Update the value of ans ans += 1 # Print the value of ans print(ans) # Driver Code if __name__ == '__main__': A = 6 B = 3 N = 15 countValues(A, B, N) # This code is contributed by SURENDRA_GANGWAR
C#
// C# program for the above approach using System; using System.Collections.Generic; class GFG{ // Function to count numbers less than // N, whose modulo with A gives B static void countValues(int A, int B, int C) { // If the value of B at least A if (B >= A) { Console.Write(0); return; } // If the value of B is 0 or not if (B == 0) { Console.Write(C / A); return; } // Stores the resultant count // of numbers less than N int ans = C / A; if (ans * A + B <= C) { // Update the value of ans ans++; } // Print the value of ans Console.Write(ans); } // Driver code public static void Main() { int A = 6, B = 3, N = 15; countValues(A, B, N); } } // This code is contributed by sanjoy_62
Javascript
<script> // JavaScript program for the above approach // Function to count numbers less than // N, whose modulo with A gives B function countValues(A, B, C) { // If the value of B at least A if (B >= A) { document.write(0); return; } // If the value of B is 0 or not if (B == 0) { document.write(parseInt(C / A)); return; } // Stores the resultant count // of numbers less than N let ans = parseInt(C / A); if (ans * A + B <= C) { // Update the value of ans ans++; } // Print the value of ans document.write(ans); } // Driver Code let A = 6, B = 3, N = 15; countValues(A, B, N); </script>
3
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por ShubhamSingh53 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA