Dados dos enteros a y b, encuentre si su producto (axb) excede el entero de 64 bits con signo o no. Si excede, escriba Sí, de lo contrario, escriba No.
Ejemplos:
Input : a = 100, b = 200 Output : No Input : a = 10000000000, b = -10000000000 Output : Yes
Acercarse :
- Si cualquiera de los números es 0, entonces nunca excederá el rango.
- De lo contrario, si el producto de los dos dividido por uno es igual al otro, entonces también estará dentro del rango.
- En cualquier otro caso, se producirá un desbordamiento.
C++
// CPP program to check for integer // overflow on multiplication #include <iostream> using namespace std; // Function to check whether there is // overflow in a * b or not. It returns // true if there is overflow. bool isOverflow(long long a, long long b) { // Check if either of them is zero if (a == 0 || b == 0) return false; long long result = a * b; if (a == result / b) return false; else return true; } // Driver code int main() { long long a = 10000000000, b = -10000000000; if (isOverflow(a, b)) cout << "Yes"; else cout << "No"; return 0; }
Java
// Java program to check for integer // overflow on multiplication import java.util.*; import java.lang.*; public class GfG{ // Function to check whether there is // overflow in a * b or not. It // returns true if there is overflow. static Boolean isOverflow( long a, long b) { // Check if either of them is zero if (a == 0 || b == 0) return false; long result = a * b; if (a == result / b) return false; else return true; } // driver function public static void main(String argc[]) { long a = Long.parseLong("10000000000"); long b = Long.parseLong("-10000000000"); if (isOverflow(a, b)) System.out.print("Yes"); else System.out.print("No"); } } // This code is contributed by Prerna Saini
Python3
# Python program to check for integer # overflow on multiplication # Function to check whether there is # overflow in a * b or not. It returns # true if there is overflow. def isOverflow(a, b): # Check if either of them is zero if (a == 0 or b == 0) : return False result = a * b if (result >= 9223372036854775807 or result <= -9223372036854775808): result=0 if (a == (result // b)): print(result // b) return False else: return True # Driver code if __name__ =="__main__": a = 10000000000 b = -10000000000 if (isOverflow(a, b)): print( "Yes") else: print( "No") # This code is contributed # Shubham Singh(SHUBHAMSINGH10)
C#
// C# program to check for integer // overflow on multiplication using System; public class GfG { // Function to check whether there is // overflow in a * b or not. It // returns true if there is overflow. static bool isOverflow( long a, long b) { // Check if either of them is zero if (a == 0 || b == 0) return false; long result = a * b; if (a == result / b) return false; else return true; } // Driver function public static void Main() { long a = 10000000000; long b = -10000000000 ; if (isOverflow(a, b)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code is contributed by vt_m
PHP
<?php // PHP program to check for integer // overflow on multiplication // Function to check whether there is // overflow in a * b or not. It returns // true if there is overflow. function isOverflow($a, $b) { // Check if either of them is zero if ($a == 0 || $b == 0) return false; $result = $a * $b; if ($a == (int)$result / $b) return false; else return true; } // Driver code $a = 10000000000; $b = -10000000000; if (isOverflow($a, $b)) echo "Yes"; else echo "No"; // This code is contributed by ajit. ?>
Javascript
<script> // JavaScript program to check for integer // overflow on multiplication // Function to check whether there is // overflow in a * b or not. It returns // true if there is overflow. function isOverflow(a, b) { // Check if either of them is zero if (a == 0 || b == 0) return false; var result = a*b; if (result >= 9223372036854775807 || result <= -9223372036854775808) result=0 if (a == parseInt(result / b)) return false; else return true; } // Driver code var a = 10000000000, b = -10000000000; if (isOverflow(a, b)) document.write( "Yes"); else document.write( "No"); </script>
Producción:
Yes
Complejidad del tiempo : O(1)
Publicación traducida automáticamente
Artículo escrito por Saif Haider y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA