Dado un número entero N , la tarea es imprimir los primeros K múltiplos de N utilizando operadores bit a bit .
Ejemplos:
Entrada: N = 16, K = 7
Salida:
16 * 1 = 16
16 * 2 = 32
16 * 3 = 48
16 * 4 = 64
16 * 5 = 80
16 * 6 = 96
16 * 7 = 112
Entrada: N = 7, K = 10
Salida:
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49 7 *
8 = 56
7 * 9 = 63
7 * 10 = 70
Acercarse:
Siga los pasos a continuación para resolver el problema:
- Iterar hasta K.
- Para cada iteración, imprima el valor actual de N .
- Luego, calcule la suma de 2 i para cada i- ésimo conjunto de bits de N. Agregue esta suma a N y repita desde el paso anterior.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to implement // the above approach #include <bits/stdc++.h> using namespace std; // Function to print the first K // multiples of N void Kmultiples(int n, int k) { int a = n; for (int i = 1; i <= k; i++) { // Print the value of N*i cout << n << " * " << i << " = " << a << endl; int j = 0; // Iterate each bit of N and add // pow(2, pos), where pos is the // index of each set bit while (n >= (1 << j)) { // Check if current bit at // pos j is fixed or not a += n & (1 << j); // For next set bit j++; } } } // Driver Code int main() { int N = 16, K = 7; Kmultiples(N, K); return 0; }
Java
// Java program to implement // the above approach import java.util.*; class GFG{ // Function to print the first K // multiples of N static void Kmultiples(int n, int k) { int a = n; for (int i = 1; i <= k; i++) { // Print the value of N*i System.out.print(n+ " * " + i+ " = " + a +"\n"); int j = 0; // Iterate each bit of N and add // Math.pow(2, pos), where pos is the // index of each set bit while (n >= (1 << j)) { // Check if current bit at // pos j is fixed or not a += n & (1 << j); // For next set bit j++; } } } // Driver Code public static void main(String[] args) { int N = 16, K = 7; Kmultiples(N, K); } } // This code is contributed by Rohit_ranjan
Python3
# Python3 program to implement # the above approach # Function to print the first K # multiples of N def Kmultiples(n, k): a = n for i in range(1, k + 1): # Print the value of N*i print("{} * {} = {}".format(n, i, a)) j = 0 # Iterate each bit of N and add # pow(2, pos), where pos is the # index of each set bit while(n >= (1 << j)): # Check if current bit at # pos j is fixed or not a += n & (1 << j) # For next set bit j += 1 # Driver Code N = 16 K = 7 Kmultiples(N, K) # This code is contributed by Shivam Singh
C#
// C# program to implement // the above approach using System; class GFG{ // Function to print the first K // multiples of N static void Kmultiples(int n, int k) { int a = n; for(int i = 1; i <= k; i++) { // Print the value of N*i Console.Write(n + " * " + i + " = " + a + "\n"); int j = 0; // Iterate each bit of N and add // Math.Pow(2, pos), where pos is // the index of each set bit while (n >= (1 << j)) { // Check if current bit at // pos j is fixed or not a += n & (1 << j); // For next set bit j++; } } } // Driver Code public static void Main(String[] args) { int N = 16, K = 7; Kmultiples(N, K); } } // This code is contributed by Amit Katiyar
Javascript
<script> // javascript program to implement // the above approach // Function to print the first K // multiples of N function Kmultiples(n , k) { var a = n; for (i = 1; i <= k; i++) { // Print the value of N*i document.write(n+ " * " + i+ " = " + a +"<br>"); var j = 0; // Iterate each bit of N and add // Math.pow(2, pos), where pos is the // index of each set bit while (n >= (1 << j)) { // Check if current bit at // pos j is fixed or not a += n & (1 << j); // For next set bit j++; } } } // Driver Code var N = 16, K = 7; Kmultiples(N, K); // This code contributed by Princi Singh </script>
Producción:
16 * 1 = 16 16 * 2 = 32 16 * 3 = 48 16 * 4 = 64 16 * 5 = 80 16 * 6 = 96 16 * 7 = 112
Complejidad temporal: O(Klog 2 N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por PranjalKumar4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA