3 条题解

  • 1
    @ 2022-12-24 18:32:05
    #include <iostream>
    using namespace std;
    int main()
    {
    	int n, i, j, k;
    	cin >> n;
    	for (i = 2; i < n; i++)
    	{
    		for (j = 2; j < n - i; j++)
    		{
    			k = n - i - j;
    			if (i + j + k == n && i % 2 == 0 && j % 2 == 0 && k % 2 == 0 && i <= j && j <= k)
    			{
    				cout << i << " " << j << " " << k << endl;
    			}
    		}
    	}
    	return 0;
    }
    
    • 1
      @ 2022-7-16 0:06:41
      #include <bits/stdc++.h> 
      using namespace std;
      int main()
      {
          int n;
          cin >> n;
          for(int i = 2; i <= n; i += 2)//用3次for循环枚举出所有可能性,因为树木数量必须为偶数,所以从2开始,每次增加2就可以,不必后面再次判断
          {
              for(int j = 2; j <= n; j += 2)
              {
                  for(int k = 2; k <= n; k += 2)
                  {
                      if(i + j + k == n and i <= j and j <= k)//因为从小到大输出,所以要判断大小,否则会输出许多无序的组合
                      {
                          cout << i << " " << j << " " << k << endl;
                      }
      
                  }
              }
          }
          return 0;
      }
      

      编码不易😕,点赞走起👀️
      记得点赞再抱走奥😄

      • 0
        @ 2022-5-22 19:53:25

        题目要求是三种树都要有,而且数量都是偶数,那么最少就是2棵,再者桃树<=梨树<=苹果树;

        那使用循环嵌套,每一层的初始值都是上一层的数量,每层每次递增2,截止到总数就可以啦,主要在最后一层进行判断三种树相加是否为总数~~

            for(int i=2;i<=n;i+=2){
                for(int j=i;j<=n;j+=2){
                    for(int k=j;k<=n;k+=2){
                        if(i+j+k==n){
                            cout<<i<<" "<<j<<" "<<k<<endl; //每一种方案空格隔开,并换行
                        }
                    }
                }
            }
        
        • 1

        信息

        ID
        339
        时间
        1000ms
        内存
        16MiB
        难度
        4
        标签
        递交数
        186
        已通过
        82
        上传者