题目描述
【循环】数列各个数位上的数字之和
给出一个正整数N(N≤9999999),求1、2、3……N这一数列各个数位上的数字之和。
案例代码
要求解1到N数列各个数位上的数字之和,可以使用循环遍历每一个数,并将其各个数位上的数字相加。下面是一个用C语言编写的案例代码:
#include <stdio.h>
// 计算一个数的各个数位上的数字之和
int digitSum(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
return sum;
}
// 计算1到N数列各个数位上的数字之和
int sequenceDigitSum(int N) {
int sum = 0;
for (int i = 1; i <= N; i++) {
sum += digitSum(i);
}
return sum;
}
int main() {
int N;
printf("请输入一个正整数N:");
scanf("%d", &N);
int result = sequenceDigitSum(N);
printf("1到%d数列各个数位上的数字之和为:%d\n", N, result);
return 0;
}
在这个程序中,digitSum
函数用于计算一个数的各个数位上的数字之和。sequenceDigitSum
函数则利用循环遍历从1到N的数,并调用 digitSum
函数计算各个数位上的数字之和,并累加到 sum
变量中。
在 main
函数中,我们首先获取用户输入的正整数N,然后调用 sequenceDigitSum
函数计算1到N数列各个数位上的数字之和,并将结果打印输出。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END