📌  相关文章
📜  检查数字奇数位的数字总和是否可被K整除

📅  最后修改于: 2021-04-26 19:36:39             🧑  作者: Mango

给定两个整数“ N”和“ K”,任务是在其奇数个位置(从右到左)查找“ N”的位数之和,并检查该和是否可被“ K”整除。如果可以整除,则输出YES ,否则输出NO
例子:

方法:

  • 在奇数个位置(从右到左)找到“ N”的数字总和。
  • 然后,以“ K”取模的和来检查和的可除性。
  • 如果可以整除,则输出“是”,否则输出“否”。

下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
 
// function that checks the
// divisibility of the sum
// of the digits at odd places
// of the given number
bool SumDivisible(int n, int k)
{
    int sum = 0, position = 1;
    while (n > 0) {
 
        // if position is odd
        if (position % 2 == 1)
            sum += n % 10;
        n = n / 10;
        position++;
    }
 
    if (sum % k == 0)
        return true;
    return false;
}
 
// Driver code
int main()
{
    int n = 592452;
    int k = 3;
 
    if (SumDivisible(n, k))
        cout << "YES";
    else
        cout << "NO";
    return 0;
}


Java
// Java implementation of the approach
import java.util.*;
 
class solution
{
 
// function that checks the
// divisibility of the sum
// of the digits at odd places
// of the given number
static boolean SumDivisible(int n, int k)
{
    int sum = 0, position = 1;
    while (n > 0) {
 
        // if position is odd
        if (position % 2 == 1)
            sum += n % 10;
        n = n / 10;
        position++;
    }
 
    if (sum % k == 0)
        return true;
    return false;
}
 
// Driver code
public static void main(String arr[])
{
    int n = 592452;
    int k = 3;
 
    if (SumDivisible(n, k))
        System.out.println("YES");
    else
        System.out.println("NO");
 
}
}
//This code is contributed by Surendra_Gangwar


Python 3
# Python 3 implementation of the approach
 
# function that checks the divisibility
# of the sum of the digits at odd places
# of the given number
def SumDivisible(n, k):
 
    sum = 0
    position = 1
    while (n > 0) :
 
        # if position is odd
        if (position % 2 == 1):
            sum += n % 10
        n = n // 10
        position += 1
     
    if (sum % k == 0):
        return True
    return False
 
# Driver code
if __name__ =="__main__":
    n = 592452
    k = 3
 
    if (SumDivisible(n, k)):
        print("YES")
    else:
        print("NO")
 
# This code is contributed
# by ChitraNayal


C#
// C# implementation of the approach
using System;
 
class GFG
{
// function that checks the
// divisibility of the sum
// of the digits at odd places
// of the given number
static bool SumDivisible(int n, int k)
{
    int sum = 0, position = 1;
    while (n > 0)
    {
 
        // if position is odd
        if (position % 2 == 1)
            sum += n % 10;
        n = n / 10;
        position++;
    }
 
    if (sum % k == 0)
        return true;
    return false;
}
 
// Driver code
static public void Main ()
{
    int n = 592452;
    int k = 3;
 
    if (SumDivisible(n, k))
        Console.WriteLine("YES");
    else
        Console.WriteLine("NO");
}
}
 
// This code is contributed by Sachin


PHP
 0)
    {
 
        // if position is odd
        if ($position % 2 == 1)
            $sum += $n % 10;
        $n = (int)$n / 10;
        $position++;
    }
 
    if ($sum % $k == 0)
        return true;
    return false;
}
 
// Driver code
$n = 592452;
$k = 3;
 
if (SumDivisible($n, $k))
    echo "YES";
else
    echo "NO";
 
// This code is contributed
// by Sach_Code
?>


Python3
# Python3 implementation of the
# above approach
 
def sumDivisible(n, k):
    sum = 0
     
    # Converting integer to string
    num = str(n)
     
    # Traversing the string
    for i in range(len(num)):
        if(i % 2 != 0):
            sum = sum+int(num[i])
 
    if sum % k == 0:
        return True
    return False
 
 
# Driver code
n = 592452
k = 3
if sumDivisible(n, k) == True:
    print("YES")
else:
    print("NO")
 
# This code is contributed by vikkycirus


输出:
YES

方法2:使用字符串()方法:

  1. 将整数转换为字符串,然后遍历字符串并通过将其存储在sum中来找到所有奇数索引的和。
  2. 如果总和可被k整除,则返回True否则为False。

下面是实现:

Python3

# Python3 implementation of the
# above approach
 
def sumDivisible(n, k):
    sum = 0
     
    # Converting integer to string
    num = str(n)
     
    # Traversing the string
    for i in range(len(num)):
        if(i % 2 != 0):
            sum = sum+int(num[i])
 
    if sum % k == 0:
        return True
    return False
 
 
# Driver code
n = 592452
k = 3
if sumDivisible(n, k) == True:
    print("YES")
else:
    print("NO")
 
# This code is contributed by vikkycirus

输出:

Yes