检查数字奇数位的数字总和是否可被K整除

2021年4月26日16:15:19 发表评论 1,035 次浏览

本文概述

给定两个整数" N"和" K", 任务是在奇数位(从右到左)找到" N"的数字总和, 并检查总和是否可被" K"整除。如果可以整除, 则输出是, 否则输出NO.

例子:

输入:N = 4325, K = 4
输出:YES, 因为3 + 5 = 8, 可以被4整除。
输入:N = 1209, K = 3
输出:NO

方法:

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

下面是上述方法的实现:

C++

//C++ implementation of the approach
#include <bits/stdc++.h>
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

<?php
//PHP implementation of the approach 
  
//function that checks the divisibility 
//of the sum of the digits at odd places 
//of the given number 
function SumDivisible( $n , $k ) 
{ 
     $sum = 0;
     $position = 1; 
     while ( $n> 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
?>

输出如下:

YES

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: