📌  相关文章
📜  用2到n-1的不同基数写的数字总和

📅  最后修改于: 2021-04-29 18:39:43             🧑  作者: Mango

给定数字n,以2到n-1的不同底数表示n时,找到n的数字总和。
例子:

Input : 5
Output : 2 3 2
Representation of 5 is 101, 12, 11 in bases 2 , 3 , 4 .

Input : 7
Output : 3 3 4 3 2

以下是此方法的实现

C++
// CPP program to find sum of digits of
// n in different bases from 2 to n-1.
#include 
using namespace std;
 
// function to calculate sum of
// digit for a given base
int solve(int n, int base)
{
    // Sum of digits
    int result = 0 ;
     
    // Calculating the number (n) by
    // taking mod with the base and adding
    // remainder to the result and
    // parallelly reducing the num value .
    while (n > 0)
    {
        int remainder = n % base ;
        result = result + remainder ;
        n = n / base;
    }
     
    // returning the result
    return result ;
}
 
void printSumsOfDigits(int n)
{
    // function calling for multiple bases
    for (int base = 2 ; base < n ; ++base)   
        cout << solve(n, base) <<" ";
}
 
// Driver program
int main()
{
    int n = 8;
    printSumsOfDigits(n);
    return 0;
}


Java
// Java program to find sum of digits of
// n in different bases from 2 to n-1.
class GFG
{
// function to calculate sum of
// digit for a given base
static int solve(int n, int base)
{
    // Sum of digits
    int result = 0 ;
     
    // Calculating the number (n) by
    // taking mod with the base and adding
    // remainder to the result and
    // parallelly reducing the num value .
    while (n > 0)
    {
        int remainder = n % base ;
        result = result + remainder ;
        n = n / base;
    }
     
    // returning the result
    return result ;
}
 
static void printSumsOfDigits(int n)
{
    // function calling for multiple bases
    for (int base = 2 ; base < n ; ++base)
        System.out.print(solve(n, base)+" ");
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 8;
    printSumsOfDigits(n);
}
}
// This code is contributed by Smitha


Python3
# Python program to find sum of digits of
# n in different bases from 2 to n-1.
  
# def to calculate sum of
# digit for a given base
def solve(n, base) :
      
    # Sum of digits
    result = 0
      
    # Calculating the number (n) by
    # taking mod with the base and adding
    # remainder to the result and
    # parallelly reducing the num value .
    while (n > 0) :
     
        remainder = n % base
        result = result + remainder 
        n = int(n / base)
      
    # returning the result
    return result
  
def printSumsOfDigits(n) :
      
    # def calling for
    # multiple bases
    for base in range(2, n) :
        print (solve(n, base), end=" ")
 
# Driver code
n = 8
printSumsOfDigits(n)
  
# This code is contributed by Manish Shaw
# (manishshaw1)


C#
// Java program to find the sum of digits of
// n in different base1s from 2 to n-1.
using System;
 
class GFG
{
// function to calculate sum of
// digit for a given base1
static int solve(int n, int base1)
{
    // Sum of digits
    int result = 0 ;
     
    // Calculating the number (n) by
    // taking mod with the base1 and adding
    // remainder to the result and
    // parallelly reducing the num value .
    while (n > 0)
    {
        int remainder = n % base1 ;
        result = result + remainder ;
        n = n / base1;
    }
     
    // returning the result
    return result ;
}
 
static void printSumsOfDigits(int n)
{
    // function calling for multiple base1s
    for (int base1 = 2 ; base1 < n ; ++base1)
        Console.Write(solve(n, base1)+" ");
}
 
// Driver Code
public static void Main()
{
    int n = 8;
    printSumsOfDigits(n);
}
}
// This code is contributed by Smitha


PHP
 0)
    {
        $remainder = $n % $base ;
        $result = $result + $remainder ;
        $n = $n / $base;
    }
     
    // returning the result
    return $result ;
}
 
function printSumsOfDigits($n)
{
     
    // function calling for
    // multiple bases
    for ($base = 2 ; $base < $n ; ++$base)
    {
        echo(solve($n, $base));
        echo(" ");
    }
}
 
// Driver code
$n = 8;
printSumsOfDigits($n);
 
// This code is contributed by Ajit.
?>


Javascript


输出 :

1 4 2 4 3 2