📜  在不使用/和%运算符的情况下检查数字是否为5的倍数

📅  最后修改于: 2021-05-04 07:14:22             🧑  作者: Mango

给定正数n,编写一个函数isMultipleof5(int n),如果n是5的倍数,则返回true。不允许使用%和/运算符
方法1(从n重复减去5)
运行一个循环,并在n大于0时从循环中的n减去5。循环终止后,检查n是否为0。如果n变为0,则n为5的倍数,否则为n的整数倍。

C++
#include 
using namespace std;
 
// assumes that n is a positive integer
bool isMultipleof5 (int n)
{
    while ( n > 0 )
        n = n - 5;
 
    if ( n == 0 )
        return true;
 
    return false;
}
 
// Driver Code
int main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        cout << n <<" is multiple of 5";
    else
        cout << n << " is not a multiple of 5";
 
    return 0;
}
 
// This code is contributed by SHUBHAMSINGH10


C
#include
 
// assumes that n is a positive integer
bool isMultipleof5 (int n)
{
    while ( n > 0 )
        n = n - 5;
 
    if ( n == 0 )
        return true;
 
    return false;
}
 
// Driver Code
int main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        printf("%d is multiple of 5\n", n);
    else
        printf("%d is not a multiple of 5\n", n);
 
    return 0;
}


Java
// Java code to check if a number
// is multiple of 5 without using
// '/' and '%' operators
class GFG
{
     
// assumes that n is a positive integer
static boolean isMultipleof5 (int n)
{
    while (n > 0)
        n = n - 5;
 
    if (n == 0)
        return true;
 
    return false;
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 19;
    if (isMultipleof5(n) == true)
        System.out.printf("%d is multiple of 5\n", n);
    else
        System.out.printf("%d is not a multiple of 5\n", n);
}
}
 
// This code is contributed by Smitha DInesh Semwal


Python3
# Python code to check
# if a number is multiple of
# 5 without using / and %
 
# Assumes that n is a positive integer
def isMultipleof5(n):
     
    while ( n > 0 ):
        n = n - 5
 
    if ( n == 0 ):
        return 1
 
    return 0
     
# Driver Code
i = 19
if ( isMultipleof5(i) == 1 ):
    print (i, "is multiple of 5")
else:
    print (i, "is not a multiple of 5")
 
# This code is contributed
# by Sumit Sudhakar


C#
// C# code to check if a number
// is multiple of 5 without using /
// and % operators
using System;
 
class GFG
{
     
// assumes that n is a positive integer
static bool isMultipleof5 (int n)
{
    while (n > 0)
        n = n - 5;
 
    if (n == 0)
        return true;
 
    return false;
}
 
// Driver Code
public static void Main()
{
    int n = 19;
    if (isMultipleof5(n) == true)
        Console.Write(n + " is multiple of 5\n");
    else
        Console.Write(n + " is not a multiple of 5\n");
}
}
 
// This code is contributed by nitin mittal.


PHP
 0 )
        $n = $n - 5;
 
    if ( $n == 0 )
        return true;
 
    return false;
}
 
// Driver Code
    $n = 19;
    if ( isMultipleof5($n) == true )
        echo("$n is multiple of 5");
    else
        echo("$n is not a multiple of 5" );
         
// This code is contributed by nitin mittal.
?>


Javascript


C++
#include 
using namespace std;
 
// Assuming that integre takes 4 bytes, there
// can be maximum 10 digits in a integer
# define MAX 11
 
bool isMultipleof5(int n)
{
    char str[MAX];
    int len = strlen(str);
     
    // Check the last character of string
    if ( str[len - 1] == '5' ||
        str[len - 1] == '0' )
         
        return true;
     
    return false;
}
 
// Driver Code
int main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        cout << n <<" is multiple of 5" <


C
#include
#include
#include
 
// Assuming that integre takes 4 bytes, there
// can be maximum 10 digits in a integer
# define MAX 11
 
bool isMultipleof5(int n)
{
    char str[MAX];
    int len = strlen(str);
     
    // Check the last character of string
    if ( str[len - 1] == '5' ||
         str[len - 1] == '0' )
          
        return true;
     
    return false;
}
 
// Driver Code
int main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        printf("%d is multiple of 5\n", n);
    else
        printf("%d is not a multiple of 5\n", n);
 
    return 0;
}


Java
// Assuming that integer
// takes 4 bytes, there
// can be maximum 10
// digits in a integer
class GFG
{
static int MAX = 11;
 
static boolean isMultipleof5(int n)
{
    char str[] = new char[MAX];
    int len = str.length;
     
    // Check the last
    // character of string
    if (str[len - 1] == '5' ||
        str[len - 1] == '0' )
         
        return true;
     
    return false;
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        System.out.println(n +" is multiple " +
                                       "of 5");
    else
        System.out.println(n +" is not a " +
                           "multiple of 5");
}
}
 
// This code is contributed by mits


Python3
# Assuming that integer
# takes 4 bytes, there
# can be maximum 10
# digits in a integer
MAX = 11;
 
def isMultipleof5(n):
    s = str(n);
    l = len(s);
     
    # Check the last
    # character of string
    if (s[l - 1] == '5' or
        s[l - 1] == '0'):
        return True;
    return False;
 
# Driver Code
n = 19;
if (isMultipleof5(n) == True ):
    print(n, "is multiple of 5");
else:
    print(n, "is not a multiple of 5");
 
# This code is contributed by mits


C#
using System;
 
// Assuming that integer
// takes 4 bytes, there
// can be maximum 10
// digits in a integer
class GFG
{
static int MAX = 11;
 
static bool isMultipleof5(int n)
{
    char[] str = new char[MAX];
    int len = str.Length;
     
    // Check the last
    // character of string
    if (str[len - 1] == '5' ||
        str[len - 1] == '0' )
         
        return true;
     
    return false;
}
 
// Driver Code
static void Main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        Console.WriteLine("{0} is " +
                          "multiple of 5", n);
    else
        Console.WriteLine("{0} is not a " +
                          "multiple of 5", n);
}
}
 
// This code is contributed by mits


PHP


Javascript


C++
#include 
using namespace std;
bool isMultipleof5(int n)
{
    // If n is a multiple of 5 then we
    // make sure that last digit of n is 0
    if ( (n & 1) == 1 )
        n <<= 1;
     
    float x = n;
    x = ( (int)(x * 0.1) ) * 10;
     
    // If last digit of n is 0 then n
    // will be equal to (int)x
    if ( (int)x == n )
        return true;
 
    return false;
}
 
// Driver Code
int main()
{
    int i = 19;
    if ( isMultipleof5(i) == true )
        cout << i <<" is multiple of 5\n";
    else
        cout << i << " is not a multiple of 5\n";
 
    getchar();
    return 0;
}
 
// This code is contributed by shubhamsingh10


C
#include
 
bool isMultipleof5(int n)
{
    // If n is a multiple of 5 then we
    // make sure that last digit of n is 0
    if ( (n & 1) == 1 )
        n <<= 1;
     
    float x = n;
    x = ( (int)(x * 0.1) ) * 10;
     
    // If last digit of n is 0 then n
    // will be equal to (int)x
    if ( (int)x == n )
        return true;
 
    return false;
}
 
// Driver Code
int main()
{
    int i = 19;
    if ( isMultipleof5(i) == true )
        printf("%d is multiple of 5\n", i);
    else
        printf("%d is not a multiple of 5\n", i);
 
    getchar();
    return 0;
}


Java
// Java code to check if
// a number is multiple of
// 5 without using / and %
class GFG
{
static boolean isMultipleof5(int n)
{
    // If n is a multiple of 5
    // then we make sure that
    // last digit of n is 0
    if ((n & 1) == 1)
        n <<= 1;
     
    float x = n;
    x = ((int)(x * 0.1)) * 10;
     
    // If last digit of n is
    // 0 then n will be equal
    // to (int)x
    if ((int)x == n)
        return true;
 
    return false;
}
 
// Driver Code
public static void main(String[] args)
{
    int i = 19;
    if (isMultipleof5(i) == true)
        System.out.println(i + "is multiple of 5");
    else
        System.out.println(i + " is not a " +
                            "multiple of 5");
}
}
 
// This code is contributed
// by mits


Python3
# Python code to check
# if a number is multiple of
# 5 without using / and %
 
def isMultipleof5(n):
     
    # If n is a multiple of 5 then we
    # make sure that last digit of n is 0
    if ( (n & 1) == 1 ):
        n <<= 1;
 
    x = n
    x = ( (int)(x * 0.1) ) * 10
     
    # If last digit of n is 0
    # then n will be equal to x
    if ( x == n ):
        return 1
 
    return 0
     
# Driver Code
i = 19
if ( isMultipleof5(i) == 1 ):
    print (i, "is multiple of 5")
else:
    print (i, "is not a multiple of 5")
 
# This code is contributed
# by Sumit Sudhakar


C#
// C# code to check if
// a number is multiple of
// 5 without using / and %
class GFG
{
static bool isMultipleof5(int n)
{
    // If n is a multiple of 5
    // then we make sure that
    // last digit of n is 0
    if ((n & 1) == 1)
        n <<= 1;
     
    float x = n;
    x = ((int)(x * 0.1)) * 10;
     
    // If last digit of n is
    // 0 then n will be equal
    // to (int)x
    if ((int)x == n)
        return true;
 
    return false;
}
 
// Driver Code
public static void Main()
{
    int i = 19;
    if (isMultipleof5(i) == true)
        System.Console.WriteLine(i + "is multiple of 5");
    else
        System.Console.WriteLine(i + " is not a " +
                                   "multiple of 5");
}
}
 
// This code is contributed
// by mits


PHP


Javascript


输出 :

19 is not a multiple of 5

方法2(转换为字符串并检查最后一个字符)
ñ转换为字符串,并检查字符串的最后一个字符。如果最后一个字符是“ 5”或“ 0”,则n是5的倍数,否则不是。

C++

#include 
using namespace std;
 
// Assuming that integre takes 4 bytes, there
// can be maximum 10 digits in a integer
# define MAX 11
 
bool isMultipleof5(int n)
{
    char str[MAX];
    int len = strlen(str);
     
    // Check the last character of string
    if ( str[len - 1] == '5' ||
        str[len - 1] == '0' )
         
        return true;
     
    return false;
}
 
// Driver Code
int main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        cout << n <<" is multiple of 5" <

C

#include
#include
#include
 
// Assuming that integre takes 4 bytes, there
// can be maximum 10 digits in a integer
# define MAX 11
 
bool isMultipleof5(int n)
{
    char str[MAX];
    int len = strlen(str);
     
    // Check the last character of string
    if ( str[len - 1] == '5' ||
         str[len - 1] == '0' )
          
        return true;
     
    return false;
}
 
// Driver Code
int main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        printf("%d is multiple of 5\n", n);
    else
        printf("%d is not a multiple of 5\n", n);
 
    return 0;
}

Java

// Assuming that integer
// takes 4 bytes, there
// can be maximum 10
// digits in a integer
class GFG
{
static int MAX = 11;
 
static boolean isMultipleof5(int n)
{
    char str[] = new char[MAX];
    int len = str.length;
     
    // Check the last
    // character of string
    if (str[len - 1] == '5' ||
        str[len - 1] == '0' )
         
        return true;
     
    return false;
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        System.out.println(n +" is multiple " +
                                       "of 5");
    else
        System.out.println(n +" is not a " +
                           "multiple of 5");
}
}
 
// This code is contributed by mits

Python3

# Assuming that integer
# takes 4 bytes, there
# can be maximum 10
# digits in a integer
MAX = 11;
 
def isMultipleof5(n):
    s = str(n);
    l = len(s);
     
    # Check the last
    # character of string
    if (s[l - 1] == '5' or
        s[l - 1] == '0'):
        return True;
    return False;
 
# Driver Code
n = 19;
if (isMultipleof5(n) == True ):
    print(n, "is multiple of 5");
else:
    print(n, "is not a multiple of 5");
 
# This code is contributed by mits

C#

using System;
 
// Assuming that integer
// takes 4 bytes, there
// can be maximum 10
// digits in a integer
class GFG
{
static int MAX = 11;
 
static bool isMultipleof5(int n)
{
    char[] str = new char[MAX];
    int len = str.Length;
     
    // Check the last
    // character of string
    if (str[len - 1] == '5' ||
        str[len - 1] == '0' )
         
        return true;
     
    return false;
}
 
// Driver Code
static void Main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        Console.WriteLine("{0} is " +
                          "multiple of 5", n);
    else
        Console.WriteLine("{0} is not a " +
                          "multiple of 5", n);
}
}
 
// This code is contributed by mits

的PHP


Java脚本


输出:

19 is not a multiple of 5

感谢Baban_Rathore提出了此方法。
方法3(将最后一位数字设置为0并使用浮点数技巧)
在两种情况下,数字n可以是5的倍数。当n的最后一位是5或10时。如果设置了n的二进制等价的最后一位(当最后一位是5时可能是这种情况),则我们使用n << = 1乘以2,以确保该数字是否等于0。是5的倍数,则最后一个数字为0。完成后,我们的工作是只是检查最后一个数字是否为0,我们可以使用浮点和整数比较技巧来做到这一点。

C++

#include 
using namespace std;
bool isMultipleof5(int n)
{
    // If n is a multiple of 5 then we
    // make sure that last digit of n is 0
    if ( (n & 1) == 1 )
        n <<= 1;
     
    float x = n;
    x = ( (int)(x * 0.1) ) * 10;
     
    // If last digit of n is 0 then n
    // will be equal to (int)x
    if ( (int)x == n )
        return true;
 
    return false;
}
 
// Driver Code
int main()
{
    int i = 19;
    if ( isMultipleof5(i) == true )
        cout << i <<" is multiple of 5\n";
    else
        cout << i << " is not a multiple of 5\n";
 
    getchar();
    return 0;
}
 
// This code is contributed by shubhamsingh10

C

#include
 
bool isMultipleof5(int n)
{
    // If n is a multiple of 5 then we
    // make sure that last digit of n is 0
    if ( (n & 1) == 1 )
        n <<= 1;
     
    float x = n;
    x = ( (int)(x * 0.1) ) * 10;
     
    // If last digit of n is 0 then n
    // will be equal to (int)x
    if ( (int)x == n )
        return true;
 
    return false;
}
 
// Driver Code
int main()
{
    int i = 19;
    if ( isMultipleof5(i) == true )
        printf("%d is multiple of 5\n", i);
    else
        printf("%d is not a multiple of 5\n", i);
 
    getchar();
    return 0;
}

Java

// Java code to check if
// a number is multiple of
// 5 without using / and %
class GFG
{
static boolean isMultipleof5(int n)
{
    // If n is a multiple of 5
    // then we make sure that
    // last digit of n is 0
    if ((n & 1) == 1)
        n <<= 1;
     
    float x = n;
    x = ((int)(x * 0.1)) * 10;
     
    // If last digit of n is
    // 0 then n will be equal
    // to (int)x
    if ((int)x == n)
        return true;
 
    return false;
}
 
// Driver Code
public static void main(String[] args)
{
    int i = 19;
    if (isMultipleof5(i) == true)
        System.out.println(i + "is multiple of 5");
    else
        System.out.println(i + " is not a " +
                            "multiple of 5");
}
}
 
// This code is contributed
// by mits

Python3

# Python code to check
# if a number is multiple of
# 5 without using / and %
 
def isMultipleof5(n):
     
    # If n is a multiple of 5 then we
    # make sure that last digit of n is 0
    if ( (n & 1) == 1 ):
        n <<= 1;
 
    x = n
    x = ( (int)(x * 0.1) ) * 10
     
    # If last digit of n is 0
    # then n will be equal to x
    if ( x == n ):
        return 1
 
    return 0
     
# Driver Code
i = 19
if ( isMultipleof5(i) == 1 ):
    print (i, "is multiple of 5")
else:
    print (i, "is not a multiple of 5")
 
# This code is contributed
# by Sumit Sudhakar

C#

// C# code to check if
// a number is multiple of
// 5 without using / and %
class GFG
{
static bool isMultipleof5(int n)
{
    // If n is a multiple of 5
    // then we make sure that
    // last digit of n is 0
    if ((n & 1) == 1)
        n <<= 1;
     
    float x = n;
    x = ((int)(x * 0.1)) * 10;
     
    // If last digit of n is
    // 0 then n will be equal
    // to (int)x
    if ((int)x == n)
        return true;
 
    return false;
}
 
// Driver Code
public static void Main()
{
    int i = 19;
    if (isMultipleof5(i) == true)
        System.Console.WriteLine(i + "is multiple of 5");
    else
        System.Console.WriteLine(i + " is not a " +
                                   "multiple of 5");
}
}
 
// This code is contributed
// by mits

的PHP


Java脚本


输出 :

19 is not a multiple of 5