NOIP 2015 普及组 复赛 coin 金币

NOIP 2015 普及组 复赛 coin 金币

1.数据规律还是比较简单1^1+2^2+3^2+4^2+5^2

2.设置一个自减的循环,一次减1,2,3,特别注意最后边界的处理,即可。

3.有一个顾虑,用int 还是long long即数据是否会越界。先用int,之后测试。

4.经测试,整数不越界。用int即可。

5.程序难点在于边界出列,一不小心,容易犯错,要在边界进行测试,跟踪。

6.提交,40分,一查,才发现跟踪代码未删除,真是很遗憾。

7.提交程序前,多进行测试,很是必要。

附上AC代码,编译环境Dev-C++4.9.9.2

#include
int main(){
    int k;
    int ans;
    int i;
    scanf("%d",&k);
    //初始化
    i=1;
    ans=0;
    while(k>0){
        k=k-i;
        ans+=i*i;
        i++;
    }
    if(k==0)
        printf("%d\n",ans);
    else{//边界处理 
        i--;//回退数据 
        ans-=i*i;//回退数据 
        k+=i;
        ans+=i*k;
        printf("%d\n",ans);
    } 
    return 0;
}

你可能感兴趣的:(NOIP,普及组,复赛)