美文网首页
小明种苹果(续)

小明种苹果(续)

作者: HelloSam | 来源:发表于2020-03-13 10:03 被阅读0次
    题目上.png
    题目中.png
    题目下.png
    #include <iostream>
    using namespace std;
    
    int tree[1010] = {0};//最多1010个苹果树
    //int sub[1010] = {0};//第i个苹果树上疏果的个数,这个不需要了,要是疏果直接在tree[i]上进行减就行,减的任务交给下面的temp
    int flag[1010] = {0};//第i个苹果树上是否有苹果掉落,有是1
    
    int N;//输入有多少个苹果树
    
    int main()
    {
        cin >> N;
        int num;//后面有几个数
        int temp;
        for (int i=1;i<=N;i++)
        {
            cin >> num;
            cin >> tree[i];//先输入第i棵苹果树的苹果的总数
            for (int j=0;j<num-1;j++)
            {
                cin >> temp;
                if (temp > 0)//有掉落的嫌疑,需要进一步判断
                {
                    if (temp != tree[i]) //重新数数之后,发现和原来的数不相同,说明确实掉落了
                    {
                        flag[i] = 1;
                        tree[i] = temp; //重新统计树上的个数
                    }
                }
                else //temp<0,就说明是在疏果
                {
                    tree[i] += temp; //直接更新第i棵树疏果之后的总数
                }
            }
        }
    
        int sum = 0;
        for (int i = 1; i <= N; i++)
        {
            sum += tree[i];//统计所有苹果树上苹果的总数
        }
        cout << sum << " ";
    
        //统计发生掉落的苹果树的棵数
        int count = 0;
        for (int i = 1; i <= N; i++)
        {
            if (flag[i] == 1) count++;
        }
        cout << count << " ";
    
        //统计掉落苹果的组数,围成一圈,连续3棵苹果树的flag都是1,group就+1
        int group = 0;
        for (int i = 1; i <= N; i++)//一共就统计N次
        {
            int j = i;
            //直到j=N-1的时候,j+2就超过了N
            if (j == N - 1)
            {
                if (flag[j] == 1 && flag[j + 1] == 1 && flag[1]==1)
                {
                    group++;
                }
            }
            else if (j == N)
            {
                if (flag[j] == 1 && flag[1] == 1 && flag[2]==1)
                {
                    group++;
                }
            }
            else
            {
                if (flag[j] == 1 && flag[j + 1] == 1 && flag[j + 2]==1)
                {
                    group++;
                }
            }
        }
        cout << group << endl;
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:小明种苹果(续)

          本文链接:https://www.haomeiwen.com/subject/mpbfshtx.html