C语言编程实现 输入一个非负整数,返回组成它的数字之和(递归方法)

此题目基本思想与非递归方法思想一样,主要是对输入的数进行取数(对10取余)和缩小(整除10)
eg:
1234
第一次 1234%10取得数4,1234/10缩小为123
第二次 123%10取得数3, 123/10缩小为12
第三次12%10取得数2, 12/10缩小为1
第四次 当调用的数小于十直接取得此数为1

源代码:

#include<stdio.h>
#include<stdlib.h>
int DigitSum(int number)
{
    int suu,m ;
    while(number)
    {
        m = number % 10;//取数
        number /= 10;//数缩小
        return m + DigitSum(number);
    }
    return number;//递归出口
}
int main()
{
    int number,i=0,temp,m=1;
    int result;
    printf("请输入数字\n");
    scanf("%d", &number);
    temp = number;
    result = DigitSum(number);
    printf("计算结果为%d\n", result);
    system("pause");
    return 0;
}

原文地址:https://blog.51cto.com/14232799/2377396

时间: 2024-10-05 10:51:12

C语言编程实现 输入一个非负整数,返回组成它的数字之和(递归方法)的相关文章

【c语言】写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 #include <stdio.h> int DigitSum( int n ) { int i; int sum = 0; i = n % 10; if( n != 0 ) { n = n / 10; sum = DigitSum( n ) + i; } return sum; } int main() { printf("

用c语言实现 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 #include<stdio.h> int main() { int DigitSum(n); int a; printf("请输入一个数字\n"); scanf("%d",&a); printf("组成它的数字之和为%d\n",DigitSum(a)); return

写一个递归函数,输入一个非负整数,返回组成它的数字之和。

★写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和. 例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19. #include<stdio.h> #include<stdlib.h> int Digitsum(unsigned int num) { int sum = 0, n = num, m = 0; if (n) { m = n % 10;   //用以求得每一位的数字 n = n / 10;  //用以不断缩小位数直至获

写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

题目要求:写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 #include<stdio.h> int DigitSum(int num)//定义DigitSum()函数,返回值为int { if(num<10) return num; else return num%10+DigitSum(num/10); } int main() { int ret = DigitSum(17

DigitSum(n) 输入一个非负整数,返回组成它的数字之和, 调用DigitSum(1729),返回1+7+2+9,和19

/*写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和, 例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19*/ #include<stdio.h> #include<math.h> int DigitSum(int n) { int static sum = 0; if (n != 0) { sum += n % 10; DigitSum(n / 10); } return sum; } int main(void) { //

输入一个非负整数,返回组成它的数字之和

#include <stdio.h> int DigitSum(int num) { if(num < 10) return num; else return (num % 10) + DigitSum(num / 10); } int main() { int a; printf("请输入一个正数\n"); scanf("%d",&a); printf("%d\n",DigitSum(a)); return 0; }

java编程:输入一个数字,反转输出这个数字的值

package 第四天; import java.util.Scanner; public class 数字反转 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num=sc.nextInt(); int result=0;//存反转的数字 while(true) { int n=num%10;//取出最

【C语言】【面试题】【笔试题】写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

#include<stdio.h> #include<stdlib.h> int sumfun(int num) {     int m = 0;     int sum = 0;     if (num!=0)     {         m = num % 10;         num = num / 10;         sum=sumfun(num)+m;     }     return sum; } int main() {      int num = 1729;

递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

#include <stdio.h> #include <stdlib.h> #include <assert.h> typedef unsigned int uint; uint DigitSum(uint n) { assert(n); if (n < 10) { return n; } else { return n % 10 + DigitSum(n / 10); } } int main() { uint number = 0; scanf("