写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
递归
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int DigitSum(int num) {
if (num < 10) {
return num;
}
return DigitSum(num / 10) + num % 10;
}
int main() {
unsigned int num;
int result;
printf("请输入一个数字:\n");
scanf("%d",&num);
result = DigitSum(num);
printf("%d",result);
system("pause");
return 0;
}
非递归:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int DigitSum(int num) {
int a1, a2, a3, a4;
a1 = num % 10;
a2 = num / 10 % 10;
a3 = num / 100 % 10;
a4 = num / 1000 % 10;
int result;
result = a4 + a3 + a2 + a1;
printf("%d + %d + %d + %d,它的和是%d\n", a4, a3, a2, a1, result);
}
int main() {
unsigned int num;
int result;
printf("请输入一个数字:\n");
scanf("%d",&num);
result = DigitSum(num);
system("pause");
return 0;
}