# 查找一个数字的数字总和，直到总和成为一位数字

2021年4月3日17:14:28 发表评论 839 次浏览

## 本文概述

``````If n < 10
digSum(n) = n
Else
digSum(n) = Sum(digSum(n))``````

``````Input : 1234
Output : 1
Explanation : The sum of 1+2+3+4 = 10, digSum(x) == 10
Hence ans will be 1+0 = 1

Input : 5674
Output : 4``````

## C ++

``````// C++ program to find sum of
// digits of a number until
// sum becomes single digit.
#include<bits/stdc++.h>

using namespace std;

int digSum( int n)
{
int sum = 0;

// Loop to do sum while
// sum is not less than
// or equal to 9
while (n > 0 || sum > 9)
{
if (n == 0)
{
n = sum;
sum = 0;
}
sum += n % 10;
n /= 10;
}
return sum;
}

// Driver program to test the above function
int main()
{
int n = 1234;
cout << digSum(n);
return 0;
}``````

## Java

``````// Java program to find sum of
// digits of a number until
// sum becomes single digit.
import java.util.*;

public class GfG {

static int digSum( int n)
{
int sum = 0 ;

// Loop to do sum while
// sum is not less than
// or equal to 9
while (n > 0 || sum > 9 )
{
if (n == 0 ) {
n = sum;
sum = 0 ;
}
sum += n % 10 ;
n /= 10 ;
}
return sum;
}

// Driver code
public static void main(String argc[])
{
int n = 1234 ;
System.out.println(digSum(n));
}
}

// This code is contributed by Gitanjali.``````

## python

``````# Python program to find sum of
# digits of a number until
# sum becomes single digit.
import math

# method to find sum of digits
# of a number until sum becomes
# single digit
def digSum( n):
sum = 0

while (n > 0 or sum > 9 ):

if (n = = 0 ):
n = sum
sum = 0

sum + = n % 10
n / = 10

return sum

# Driver method
n = 1234
print (digSum(n))

# This code is contributed by Gitanjali.``````

## C#

``````// C# program to find sum of
// digits of a number until
// sum becomes single digit.
using System;

class GFG {

static int digSum( int n)
{
int sum = 0;

// Loop to do sum while
// sum is not less than
// or equal to 9
while (n > 0 || sum > 9)
{
if (n == 0)
{
n = sum;
sum = 0;
}
sum += n % 10;
n /= 10;
}
return sum;
}

// Driver code
public static void Main()
{
int n = 1234;
Console.Write(digSum(n));
}
}

// This code is contributed by nitin mittal``````

## 的PHP

``````<?php
// PHP program to find sum of
// digits of a number until
// sum becomes single digit.

function digSum( \$n )
{
\$sum = 0;

// Loop to do sum while
// sum is not less than
// or equal to 9
while ( \$n > 0 || \$sum > 9)
{
if ( \$n == 0)
{
\$n = \$sum ;
\$sum = 0;
}
\$sum += \$n % 10;
\$n = (int) \$n / 10;
}
return \$sum ;
}

// Driver Code
\$n = 1234;
echo digSum( \$n );

// This code is contributed
// by aj_36
?>``````

``1``

``````If n == 0
return 0;

If n % 9 == 0
digSum(n) = 9
Else
digSum(n) = n % 9``````

## CPP

``````#include<bits/stdc++.h>
using namespace std;

int digSum( int n)
{
if (n == 0)
return 0;
return (n % 9 == 0) ? 9 : (n % 9);
}

// Driver program to test the above function
int main()
{
int n = 9999;
cout<<digSum(n);
return 0;
}``````

## Java

``````import java.io.*;

class GFG {

static int digSum( int n)
{
if (n == 0 )
return 0 ;
return (n % 9 == 0 ) ? 9 : (n % 9 );
}

// Driver program to test the above function
public static void main (String[] args)
{
int n = 9999 ;
System.out.println(digSum(n));
}
}

// This code is contributed by anuj_67.``````

## Python3

``````def digSum(n):

if (n = = 0 ):
return 0
if (n % 9 = = 0 ):
return 9
else :
(n % 9 )

# Driver program to test the above function
n = 9999
print (digSum(n))

# This code is contributed by
# Smitha Dinesh Semwal``````

## C#

``````using System;

class GFG
{
static int digSum( int n)
{
if (n == 0)
return 0;
return (n % 9 == 0) ? 9 : (n % 9);
}

// Driver Code
public static void Main ()
{
int n = 9999;
Console.Write(digSum(n));

}
}

// This code is contributed by aj_36``````

## 的PHP

``````<?php

function digSum( \$n )
{
if ( \$n == 0)
return 0;
return ( \$n % 9 == 0) ? 9 : ( \$n % 9);
}

// Driver program to test the above function
\$n = 9999;
echo digSum( \$n );

//This code is contributed by anuj_67.
?>``````

``9``