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

C语言中将重复数字拼接为整数并实现求和的问题求助

生成重复数字整数并求和的实现方案

要解决生成i个i形式的整数并累加求和的问题,可在输出表达式的同步逻辑里,用临时变量逐步构建目标整数,再累加到总和中。具体实现逻辑:

  • 对每个i(从1到n),初始化临时变量current_num为0
  • 循环i次,每次执行current_num = current_num * 10 + i——比如i=3时,三次循环后会得到333
  • 将构建好的current_num加到总和sum里

修改后的完整代码:

#include <stdio.h>

int main()
{
    printf("Program calculates a sum.\nAutor: Jakub Drozd\n");
    int n;
    long long sum = 0; // 用long long避免溢出,n=9时总和为123456790,int虽足够但long long更稳妥
    printf("Enter the length of the sum (no more than 9): ");
    while (scanf_s("%d", &n)!=1 || n < 1 || n >9 || getchar()!='\n')
    {
        printf("Wrong input, enter the length of the sum: ");
        int c;
        while ((c = getchar()) != '\n' && c != EOF)
            ;
    }
    for (int i = 1; i <= n; i++)
    {
        if (i != 1) { printf(" + "); }
        long long current_num = 0;
        for (int j = 1; j <= i; j++)
        {
            current_num = current_num * 10 + i;
            printf("%d", i);
        }
        sum += current_num;
    }
    printf(" = %lld\n", sum);
    printf("End of the program\n");
    return 0;
}

关键修改点说明:

  1. 类型优化:把sum和current_num改为long long,虽然n≤9时总和在int范围内,但用64位整数能避免潜在溢出风险,是更严谨的写法。
  2. 输入校验完善:在循环条件里加入n>9的判断,确保输入严格符合1-9的要求。
  3. 求和逻辑嵌入:在输出重复数字的循环中同步构建目标整数,直接累加到总和,无需额外处理字符串转整数的步骤。
  4. 结果输出:在表达式末尾追加结果输出,完成题目要求的“输出求和表达式及其结果”的需求。

内容的提问来源于stack exchange,提问作者Veanty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:30:59