编写一个程序,在不使用任何比较运算符的情况下,找出三个整数中最小的一个。 设3个输入数字为x、y和z。 方法1(重复减法) 取一个计数器变量c,并用0初始化它。在循环中,重复将x、y和z减去1,然后增加c。先变为0的数字是最小的。循环终止后,c将保持最小值3。
null
C++
// C++ program to find Smallest // of three integers without // comparison operators #include <bits/stdc++.h> using namespace std; int smallest( int x, int y, int z) { int c = 0; while (x && y && z) { x--; y--; z--; c++; } return c; } // Driver Code int main() { int x = 12, y = 15, z = 5; cout << "Minimum of 3 numbers is " << smallest(x, y, z); return 0; } // This code is contributed // by Akanksha Rai |
C
// C program to find Smallest // of three integers without // comparison operators #include <stdio.h> int smallest( int x, int y, int z) { int c = 0; while (x && y && z) { x--; y--; z--; c++; } return c; } int main() { int x = 12, y = 15, z = 5; printf ( "Minimum of 3 numbers is %d" , smallest(x, y, z)); return 0; } |
JAVA
// Java program to find Smallest // of three integers without // comparison operators class GFG { static int smallest( int x, int y, int z) { int c = 0 ; while (x != 0 && y != 0 && z != 0 ) { x--; y--; z--; c++; } return c; } public static void main(String[] args) { int x = 12 , y = 15 , z = 5 ; System.out.printf( "Minimum of 3" + " numbers is %d" , smallest(x, y, z)); } } // This code is contributed by Smitha Dinesh Semwal. |
Python3
# Python3 program to find Smallest # of three integers without # comparison operators def smallest(x, y, z): c = 0 while ( x and y and z ): x = x - 1 y = y - 1 z = z - 1 c = c + 1 return c # Driver Code x = 12 y = 15 z = 5 print ( "Minimum of 3 numbers is" , smallest(x, y, z)) # This code is contributed by Anshika Goyal |
C#
// C# program to find Smallest of three // integers without comparison operators using System; class GFG { static int smallest( int x, int y, int z) { int c = 0; while (x != 0 && y != 0 && z != 0) { x--; y--; z--; c++; } return c; } // Driver Code public static void Main() { int x = 12, y = 15, z = 5; Console.Write( "Minimum of 3" + " numbers is " + smallest(x, y, z)); } } // This code is contributed by Sam007 |
PHP
<?php // php program to find Smallest // of three integers without // comparison operators function smallest( $x , $y , $z ) { $c = 0; while ( $x && $y && $z ) { $x --; $y --; $z --; $c ++; } return $c ; } // Driver code $x = 12; $y = 15; $z = 5; echo "Minimum of 3 numbers is " . smallest( $x , $y , $z ); // This code is contributed by Sam007 ?> |
Javascript
<script> // JavaScript program to find Smallest // of three integers without // comparison operators function smallest(x, y, z) { let c = 0; while (x && y && z) { x--; y--; z--; c++; } return c; } // Driver Code let x = 12, y = 15, z = 5; document.write( "Minimum of 3 numbers is " + smallest(x, y, z)); // This code is contributed by Surbhi Tyagi. </script> |
输出:
Minimum of 3 numbers is 5
时间复杂性: O(最小(x,y,z))
辅助空间: O(1)
这种方法不适用于负数。方法2也适用于负数。 方法2(使用位运算) 使用方法2 这篇文章至少要找到两个数字 (我们不能使用方法1,因为方法1使用比较运算符)。一旦我们有了查找最少2个数字的功能,我们就可以使用它来查找最少3个数字。
C++
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std; #define CHAR_BIT 8 /*Function to find minimum of x and y*/ int min( int x, int y) { return y + ((x - y) & ((x - y) >> ( sizeof ( int ) * CHAR_BIT - 1))); } /* Function to find minimum of 3 numbers x, y and z*/ int smallest( int x, int y, int z) { return min(x, min(y, z)); } // Driver code int main() { int x = 12, y = 15, z = 5; cout << "Minimum of 3 numbers is " << smallest(x, y, z); return 0; } // This code is contributed by Code_Mech. |
C
// C implementation of above approach #include <stdio.h> #define CHAR_BIT 8 /*Function to find minimum of x and y*/ int min( int x, int y) { return y + ((x - y) & ((x - y) >> ( sizeof ( int ) * CHAR_BIT - 1))); } /* Function to find minimum of 3 numbers x, y and z*/ int smallest( int x, int y, int z) { return min(x, min(y, z)); } int main() { int x = 12, y = 15, z = 5; printf ( "Minimum of 3 numbers is %d" , smallest(x, y, z)); return 0; } |
JAVA
// Java implementation of above approach class GFG { static int CHAR_BIT = 8 ; // Function to find minimum of x and y static int min( int x, int y) { return y + ((x - y) & ((x - y) >> ((Integer.SIZE/ 8 ) * CHAR_BIT - 1 ))); } // Function to find minimum of 3 numbers x, y and z static int smallest( int x, int y, int z) { return Math.min(x, Math.min(y, z)); } // Driver code public static void main (String[] args) { int x = 12 , y = 15 , z = 5 ; System.out.println( "Minimum of 3 numbers is " + smallest(x, y, z)); } } // This code is contributed by mits |
Python3
# Python3 implementation of above approach CHAR_BIT = 8 # Function to find minimum of x and y def min (x, y): return y + ((x - y) & ((x - y) >> ( 32 * CHAR_BIT - 1 ))) # Function to find minimum # of 3 numbers x, y and z def smallest(x, y, z): return min (x, min (y, z)) # Driver code x = 12 y = 15 z = 5 print ( "Minimum of 3 numbers is " , smallest(x, y, z)) # This code is contributed # by Mohit Kumar |
C#
// C# implementation of above approach using System; class GFG { static int CHAR_BIT=8; /*Function to find minimum of x and y*/ static int min( int x, int y) { return y + ((x - y) & ((x - y) >> ( sizeof ( int ) * CHAR_BIT - 1))); } /* Function to find minimum of 3 numbers x, y and z*/ static int smallest( int x, int y, int z) { return Math.Min(x, Math.Min(y, z)); } // Driver code static void Main() { int x = 12, y = 15, z = 5; Console.WriteLine( "Minimum of 3 numbers is " +smallest(x, y, z)); } } // This code is contributed by mits |
Javascript
<script> let CHAR_BIT = 8; // Function to find minimum of x and y function min(x,y) { return y + ((x - y) & ((x - y) >> (32 * CHAR_BIT - 1))) } // Function to find minimum of 3 numbers x, y and z function smallest(x,y,z) { return Math.min(x, Math.min(y, z)); } // Driver code let x = 12, y = 15, z = 5; document.write( "Minimum of 3 numbers is " + smallest(x, y, z)); // This code is contributed by avanitrachhadiya2155 </script> |
输出:
Minimum of 3 numbers is 5
方法3(使用除法运算符) 我们也可以用除法算符来求两个数中的最小值。如果(a/b)的值为零,则b大于a,否则a大于。幸亏 戈皮纳特 和 维涅什 感谢你提出这种方法。
C++
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std; // Using division operator to find // minimum of three numbers int smallest( int x, int y, int z) { if (!(y / x)) // Same as "if (y < x)" return (!(y / z)) ? y : z; return (!(x / z)) ? x : z; } int main() { int x = 78, y = 88, z = 68; cout << "Minimum of 3 numbers is " << smallest(x, y, z); return 0; } // this code is contributed by shivanisinghss2110 |
C
#include <stdio.h> // Using division operator to find // minimum of three numbers int smallest( int x, int y, int z) { if (!(y / x)) // Same as "if (y < x)" return (!(y / z)) ? y : z; return (!(x / z)) ? x : z; } int main() { int x = 78, y = 88, z = 68; printf ( "Minimum of 3 numbers is %d" , smallest(x, y, z)); return 0; } |
JAVA
// Java program of above approach class GfG { // Using division operator to // find minimum of three numbers static int smallest( int x, int y, int z) { if ((y / x) != 1 ) // Same as "if (y < x)" return ((y / z) != 1 ) ? y : z; return ((x / z) != 1 ) ? x : z; } // Driver code public static void main(String[] args) { int x = 78 , y = 88 , z = 68 ; System.out.printf( "Minimum of 3 numbers" + " is %d" , smallest(x, y, z)); } } // This code has been contributed by 29AjayKumar |
Python3
# Using division operator to find # minimum of three numbers def smallest(x, y, z): if ( not (y / x)): # Same as "if (y < x)" return y if ( not (y / z)) else z return x if ( not (x / z)) else z # Driver Code if __name__ = = "__main__" : x = 78 y = 88 z = 68 print ( "Minimum of 3 numbers is" , smallest(x, y, z)) # This code is contributed # by ChitraNayal |
C#
// C# program of above approach using System; public class GfG { // Using division operator to // find minimum of three numbers static int smallest( int x, int y, int z) { if ((y / x) != 1) // Same as "if (y < x)" return ((y / z) != 1) ? y : z; return ((x / z) != 1) ? x : z; } // Driver code public static void Main() { int x = 78, y = 88, z = 68; Console.Write( "Minimum of 3 numbers" + " is {0}" , smallest(x, y, z)); } } /* This code contributed by PrinciRaj1992 */ |
Javascript
<script> // Javascript implementation of above approach // Using division operator to find // minimum of three numbers function smallest(x, y, z) { if (!(y / x)) // Same as "if (y < x)" return (!(y / z)) ? y : z; return (!(x / z)) ? x : z; } let x = 78, y = 88, z = 68; document.write( "Minimum of 3 numbers is " + smallest(x, y, z)); // This is code is contributed by Mayank Tyagi </script> |
输出:
Minimum of 3 numbers is 68
如果您发现上述代码/算法不正确,请写下评论,或者寻找其他方法来解决相同的问题。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END