给定一个以十进制为底的数字N ,任务是找到以任何底数B为底的数字的总和。
例子:
Input: N = 100, B = 8
Output: 9
Explnantion:
(100)8 = 144
Sum(144) = 1 + 4 + 4 = 9
Input: N = 50, B = 2
Output: 3
Explnantion:
(50)2 = 110010
Sum(110010) = 1 + 1 + 0 + 0 + 1 + 0 = 3
方法:通过对基数B的数字N进行模运算,找到单位数字,然后用N = N / B再次更新数字,并在每一步中相加单位数字来更新总和。
下面是上述方法的实现
C++
// C++ Implementation to Compute Sum of
// Digits of Number N in Base B
#include
using namespace std;
// Function to compute sum of
// Digits of Number N in base B
int sumOfDigit(int n, int b)
{
// Initilize sum with 0
int unitDigit, sum = 0;
while (n > 0) {
// Compute unit digit of the number
unitDigit = n % b;
// Add unit digit in sum
sum += unitDigit;
// Update value of Number
n = n / b;
}
return sum;
}
// Driver function
int main()
{
int n = 50;
int b = 2;
cout << sumOfDigit(n, b);
return 0;
}
Java
// Java Implementation to Compute Sum of
// Digits of Number N in Base B
class GFG
{
// Function to compute sum of
// Digits of Number N in base B
static int sumOfDigit(int n, int b)
{
// Initilize sum with 0
int unitDigit, sum = 0;
while (n > 0)
{
// Compute unit digit of the number
unitDigit = n % b;
// Add unit digit in sum
sum += unitDigit;
// Update value of Number
n = n / b;
}
return sum;
}
// Driver code
public static void main(String[] args)
{
int n = 50;
int b = 2;
System.out.print(sumOfDigit(n, b));
}
}
// This code is contributed by PrinciRaj1992
Python3
# Python3 Implementation to Compute Sum of
# Digits of Number N in Base B
# Function to compute sum of
# Digits of Number N in base B
def sumOfDigit(n, b):
# Initilize sum with 0
unitDigit = 0
sum = 0
while (n > 0):
# Compute unit digit of the number
unitDigit = n % b
# Add unit digit in sum
sum += unitDigit
# Update value of Number
n = n // b
return sum
# Driver code
n = 50
b = 2
print(sumOfDigit(n, b))
# This code is contributed by ApurvaRaj
C#
// C# Implementation to Compute Sum of
// Digits of Number N in Base B
using System;
class GFG
{
// Function to compute sum of
// Digits of Number N in base B
static int sumOfDigit(int n, int b)
{
// Initilize sum with 0
int unitDigit, sum = 0;
while (n > 0)
{
// Compute unit digit of the number
unitDigit = n % b;
// Add unit digit in sum
sum += unitDigit;
// Update value of Number
n = n / b;
}
return sum;
}
// Driver code
public static void Main(String[] args)
{
int n = 50;
int b = 2;
Console.Write(sumOfDigit(n, b));
}
}
// This code is contributed by PrinciRaj1992
Javascript
输出:
3