为啥最后一个不能ac呢?
查看原帖
为啥最后一个不能ac呢?
686260
sunshinew208楼主2022/3/14 10:40
#include <stdio.h>
#include <math.h>

int getscore(int x){
    if (x>=0&&x<3)
    {
        return 1;
    }else if (x>=3&&x<7)
    {
        return 2;
    }else if (x>=7&&x<30)
    {
        return 3;
    }else if (x>=30&&x<120)
    {
        return 4;   
    }else if (x>=120&&x<365)
    {
        return 5;   
    }else if (x>=365)
    {
        return 6;
    }

}

int main(){
    int n,sum,num0=0;
    scanf("%d",&n);
    int a[n];
    for (int i = 0; i < n; i++)
    {
        scanf("%d",&a[i]);
    }
    int score;
    if (a[0]==0)
    {
        score=0;
        sum = 0;
    }else
    {
        score=1;
        sum = 1;
    }
    for (int i = 1; i < n; i++)
    {
        
        if (a[i]==1&&a[i-1]!=0)
        {
            sum++;
            score += getscore(sum);
        }else if (a[i]==0)
        {
            num0++;
        }else if ((a[i]==1)&&(a[i]-1==0))
        {
            sum = sum - pow(2.0,(num0-1));
            if (sum<0)
            {
                sum=1;
            }
            score += getscore(sum);
            num0 = 0;
            sum++;

        }
        
    }
    printf("%d",score);
    return 0;
    
}
2022/3/14 10:40
加载中...