鱼C论坛

 找回密码
 立即注册
查看: 1355|回复: 2

[已解决]为什么答案错误啊

[复制链接]
发表于 2023-10-4 17:54:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目是
给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。

输入格式:
输入数字A与非负整数N。

输出格式:
输出其N项数列之和S的值。
#include<stdio.h>
#include<math.h>
int main()
{
        int a,n;
        scanf("%d%d",&a,&n);
        int sum=0,i=0,b;
        for(;i<n;i++)
        {
                b=a*pow(10,i);
                sum=sum+b;
        }
        printf("%d",sum);
}
最佳答案
2023-10-4 18:10:33
抱歉,我之前提供的代码有误。以下是一个修正后的 C 语言代码,用于计算数列之和 S:

#include <stdio.h>

int main() {
    int a, n;
    scanf("%d%d", &a, &n);

    int sum = 0;
    int current_term = 0;

    for (int i = 0; i < n; i++) {
        current_term = current_term * 10 + a;
        sum += current_term;
    }

    printf("%d", sum);

    return 0;
}

在这个修正后的代码中,我使用了一个变量 `current_term` 来存储当前项的值。在每次循环中,我们将 `current_term` 乘以 10,然后加上 `a`,以计算下一项的值。然后将 `current_term` 的值累加到 `sum` 中。这样,我们可以正确计算数列之和 S。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-4 17:54:20 | 显示全部楼层
这段代码的问题在于没有考虑到每一项的具体数值,而是通过 pow 函数和循环来计算每一项的值。这样做会导致精度问题,从而得到错误的结果。

正确的做法是通过一个变量来记录当前项的值,然后累加到总和中。具体实现可以使用一个变量来记录当前项的值,每次将其乘以 10 并加上 A,然后累加到总和中。代码如下:
#include <stdio.h>

int main() {
    int a, n;
    scanf("%d%d", &a, &n);
    int sum = 0, cur = a;
    for (int i = 0; i < n; i++) {
        sum += cur;
        cur = cur * 10 + a;
    }
    printf("%d", sum);
    return 0;
}

这样就可以得到正确的结果了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-4 18:10:33 | 显示全部楼层    本楼为最佳答案   
抱歉,我之前提供的代码有误。以下是一个修正后的 C 语言代码,用于计算数列之和 S:

#include <stdio.h>

int main() {
    int a, n;
    scanf("%d%d", &a, &n);

    int sum = 0;
    int current_term = 0;

    for (int i = 0; i < n; i++) {
        current_term = current_term * 10 + a;
        sum += current_term;
    }

    printf("%d", sum);

    return 0;
}

在这个修正后的代码中,我使用了一个变量 `current_term` 来存储当前项的值。在每次循环中,我们将 `current_term` 乘以 10,然后加上 `a`,以计算下一项的值。然后将 `current_term` 的值累加到 `sum` 中。这样,我们可以正确计算数列之和 S。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 23:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表