You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中如何累加函数返回值?长整型各位数字求和疑问

长整型各位数字求和实现方案

核心思路其实很简单:没必要先把所有数字都返回再求和,在逐位分离的过程中直接累加就行,既省内存又高效。

直接累加的实现(以C语言为例)

这是最常用的写法,不需要额外存储所有数字:

long sum_digits(long num) {
    long sum = 0;
    // 处理负数,数字正负不影响各位和
    num = num < 0 ? -num : num;
    
    while (num > 0) {
        sum += num % 10; // 取当前最后一位加到总和里
        num = num / 10;  // 去掉最后一位,继续处理剩下的数字
    }
    return sum;
}

如果必须先收集所有数字再求和

要是你因为其他需求,必须先把各位数字存起来再累加,也可以用数组暂存:

#include <stdio.h>

long sum_digits_collect(long num) {
    int digits[20]; // 长整型最多19位,数组足够存
    int digit_count = 0;
    long total = 0;
    
    num = num < 0 ? -num : num;
    
    // 收集各位数字(和你之前打印的逻辑一致)
    while (num > 0) {
        digits[digit_count++] = num % 10;
        // 这里可以保留你原来的打印代码:printf("%d ", digits[digit_count-1]);
        num /= 10;
    }
    
    // 遍历数组累加求和
    for (int i = 0; i < digit_count; i++) {
        total += digits[i];
    }
    return total;
}

不管用哪种方式,最终都能直接返回各位数字的总和,不需要单独返回每个数字再处理。

内容的提问来源于stack exchange,提问作者Joseph J Filoramo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:15:41