C语言 - 递归计算一个数的每位之和

简介: C语言 - 递归计算一个数的每位之和


/***********************************************************************

目的:写一个递归函数DigitSum(), 输入一个非负整数,返回组成它的数字之和。如DigitSum(1729),则返回1 + 7 + 2 + 9的和

分析:DigitSum(1729)

   DigitSum(172) + 9

   DigitSum(17) + 2 + 9

   DigitSum(1) + 7 + 2 + 9

平台:Visual studio 2017 && windows

*************************************************************************/

实现代码:

#include<stdio.h>
int DigitSum(int num)
{
  if(num > 9)
    return DigitSum(num / 10) + num % 10;
  else 
    return num;
}
int main()
{
  int num = 1729;
  int sum = DigitSum(num);
  printf("%d\n", sum);
  return 0;
}


相关文章
|
19天前
|
存储 编译器 C语言
爱上C语言:函数递归,青蛙跳台阶图文详解
爱上C语言:函数递归,青蛙跳台阶图文详解
|
14天前
|
算法 程序员 编译器
C语言初阶③(函数)知识点+编程作业(递归模拟strlen,pow)
C语言初阶③(函数)知识点+编程作业(递归模拟strlen,pow)
23 0
|
5天前
|
C语言
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(二)
我们可以通过创建并定义符号常量NUMBER,来作为判断是否胜利的标准。如三子棋中,令NUMBER为3,则这八个方向中有任意一个方向达成3子连珠,则连珠的这个棋子所代表的玩家获胜。
16 1
|
5天前
|
算法 C语言 C++
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(一)
三子棋游戏设计的核心是对二维数组的把握和运用。
17 1
|
6天前
|
C语言
C语言(8)----长度计算方法:sizeof与strlen的对比
C语言(8)----长度计算方法:sizeof与strlen的对比
8 0
|
6天前
|
机器学习/深度学习 编译器 C语言
C语言(6)----函数的递归思想
C语言(6)----函数的递归思想
13 0
|
6天前
|
C语言
青蛙跳台阶问题的递归实现(C语言)
青蛙跳台阶问题的递归实现(C语言)
|
6天前
|
C语言
汉诺塔————经典递归问题(C语言实现)
汉诺塔————经典递归问题(C语言实现)
|
6天前
|
C语言
C语言递归练习
C语言递归练习
|
10天前
|
机器学习/深度学习 算法 编译器
【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
31 0