C语言40分求助

P2669 [NOIP2015 普及组] 金币

fengzishang123 @ 2022-10-17 20:39:53

#include <stdio.h>

int main(void)
{
    int k,a,i;
    int sum=0;
    int count=0;
    scanf("%d",&k);

    for(a=1;;a++)
    {
        for(i=1;i<=a;i++)
        {
            sum=sum+a;
            count++;
        }
        if(count==k)
        break;
    }

    printf("%d",sum);
    return 0;
}

by Tongyq0722 @ 2022-10-17 21:04:59

第二重循环外面的判断要放在第二重循环内,因为有可能剩下的天数小于a,就会多算几天。
还有个细节我赖得说,如果考虑不到会全部超时,想不出来就直接看答案吧 。

https://www.luogu.com.cn/paste/pgw1ksh5
答案在上面的网址里


by fengzishang123 @ 2022-10-18 00:33:57

@Tongyq0722 好,谢谢dalao


by fengzishang123 @ 2022-10-18 00:47:49

@Tongyq0722 初学者,查了百度也不知道flag=true怎么用,为什么要用


by Tongyq0722 @ 2022-10-18 18:43:58

@fengzishang123 这里的flag是c++里的一种数据类型——布尔类型,布尔类型定义的变量中的值只能是false(0)和true(1),可以用来标记。
你可以在百度里搜“c++布尔类型”,会有视频教程。


by fengzishang123 @ 2022-10-19 15:59:28

@Tongyq0722 好,谢谢


|