代码使我盲目 2024-03-28 08:11 采纳率: 0%
浏览 4

如何通过洛谷P8762

题目
.
.

img

img

.
.
.
我写的代码
.
.

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>


int sum(int n)
{
    int i = 1;
    int j = 0;
    int sum = 0;

    for (; n - i >= 0; n -= i, i++)
    {
        ;
    }
    i -= 1;
    j = i;

    for (; j > 0; j--)
    {
        for (i = j; i > 0; i--)
        {
            sum += i;
        }
    }
    for (n; n > 0; n--)
        sum += n;
    return sum;
}


int main()
{
    int T = 0;
    int i = 0;

    scanf("%d", &T);

    int* p1 = (int*)malloc(T * sizeof(int));
    if (p1 == NULL)
    {
        printf("%s\n", strerror(errno));
    }

    int* p2 = (int*)malloc(T * sizeof(int));
    if (p2 == NULL)
    {
        printf("%s\n", strerror(errno));
    }

    for (; i < T; i++)
    {
        scanf("%d %d", &p1[i], &p2[i]);
    }
    for (i = 0; i < T; i++)
        printf("%d\n", sum(p2[i]) - sum(p1[i] - 1));
    free(p1);
    p1 = NULL;
    free(p2);
    p2 = NULL;

    return 0;
}

.
.
运行结果
.
.

img

.
.
问题
.
.
不变绿的方块是什么意思?
洛谷上的题给的题解都是c++的,看不懂怎么找c语言的题解呢?

  • 写回答

2条回答 默认 最新

  • Kwan的解忧杂货铺 Java领域优质创作者 2024-03-28 08:32
    关注

    代码使我盲目 上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    根据你提供的信息,你遇到的问题是关于洛谷P8762题目的问题。你想知道绿色和不变的方块是什么意思,以及如何找到C语言的题解。

    解决方案:

    1. 关于绿色和不变的方块:在洛谷的题目页面中,页面左侧显示了一个提交记录的区域,其中的方块用不同的颜色来表示不同的状态。绿色方块表示该提交是正确的,通过了所有的测试用例。而灰色方块表示该提交是错误的,没有通过所有的测试用例。在你提供的代码中,有些测试用例通过了,所以显示了绿色方块。
    2. 找到C语言的题解:在洛谷上,题目页面右侧有一个"题解"的选项,点击进入之后,可以看到其他用户对该题目的解答和代码。默认情况下,显示的是C++的解法,如果你想找到C语言的题解,可以选择"语言"这个筛选条件,选择"C"语言即可看到相关的解答和代码。

    下面是你提供代码的修改后的版本:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include <stdio.h>
    #include <string.h>
    #include <errno.h>
    #include <stdlib.h>
    
    int sum(int n) {
        int i = 1;
        int j = 0;
        int sum = 0;
    
        for (; n - i >= 0; n -= i, i++)
        {
            ;
        }
        i -= 1;
        j = i;
    
        for (; j > 0; j--)
        {
            for (i = j; i > 0; i--)
            {
                sum += i;
            }
        }
        for (; n > 0; n--)
            sum += n;
        return sum;
    }
    
    int main() {
        int T = 0;
        int i = 0;
    
        scanf("%d", &T);
    
        int* p1 = (int*)malloc(T * sizeof(int));
        if (p1 == NULL)
        {
            printf("%s\n", strerror(errno));
        }
    
        int* p2 = (int*)malloc(T * sizeof(int));
        if (p2 == NULL)
        {
            printf("%s\n", strerror(errno));
        }
    
        for (; i < T; i++)
        {
            scanf("%d %d", &p1[i], &p2[i]);
        }
        for (i = 0; i < T; i++)
            printf("%d\n", sum(p2[i]) - sum(p1[i] - 1));
        free(p1);
        p1 = NULL;
        free(p2);
        p2 = NULL;
    
        return 0;
    }
    

    希望这可以帮助到你!

    评论

报告相同问题?

问题事件

  • 创建了问题 3月28日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line