分糖果幼儿园小朋友分糖果

分糖果
描述

红太阳幼儿园的小朋友们开始分糖果啦!

红太阳幼儿园有m个小朋友,n个糖果,你现在要把这个n个糖果分给小朋友们,为了不让小朋友们发生矛盾,你决定把这n个糖果平均分配给这m个小朋友,如果不够的话,需要从你自己手中的k个糖果中拿出一部分分给小朋友们,现在,你需要判断能不能完成平均分配,能则输出YES,不能输出NO

day14-02.zip

输入
第一行一个整数T(T<=1000),表示数据组数

每组数据有三个正整数,n,m,k(1<=n,m,k<=100000)

输出
T行,每行一个判断结果

输入样例 1

3
5 3 4
6 3 3
15 7 5
输出样例 1

YES
YES
NO

引用 皆我百晓生 小程序回复内容续答:

以下是一个可以实现该功能的C++代码示例:

#include <iostream>

using namespace std;

string canDistribute(int n, int m, int k) {
    int average = n / m;  // 平均分配的糖果数
    int remain = n % m;   // 剩余的糖果数

    if (average <= k && (remain == 0 || k >= remain)) {
        return "YES";
    } else {
        return "NO";
    }
}

int main() {
    int T;
    cin >> T;

    for (int i = 0; i < T; i++) {
        int n, m, k;
        cin >> n >> m >> k;

        cout << canDistribute(n, m, k) << endl;
    }

    return 0;
}

解释说明:

  • canDistribute 函数用于判断是否能完成平均分配,接收三个参数:糖果数 n、小朋友数 m、自己手中的糖果数 k,返回一个字符串,表示能否完成平均分配。
  • main 函数中,首先读取输入的数据组数 T,然后通过循环逐组读取每一组数据,并调用 canDistribute 函数判断能否平均分配,并输出结果。

注意:以上代码是一种简单的实现方式,但可能存在某些边界情况没有考虑到。在实际应用中,还需要根据实际问题进行适当的错误处理和边界检查。

int  T;
cin>>T;
for(int i=0;i<T;i++)
{
  int n,m,k;
  cin>>n>>m>>k;
  if(n%m>0)
  {
    if((n%m+k)>=m)
    {
      cout<<"YES"<<endl;;
    }
    else 
    {cout<<"NO"<<endl;}
  }else
 {
  cout<<"YES"<<endl;
 }
}


#include <iostream>

int main() {
    int T; // 数据组数
    std::cin >> T;

    for (int i = 0; i < T; ++i) {
        int n, m, k; // n个糖果,m个小朋友,k个自己的糖果
        std::cin >> n >> m >> k;

        // 计算能否平均分配
        int total_candies = n + k;
        int candies_per_child = total_candies / m;

        if (candies_per_child * m == total_candies) {
            std::cout << "YES" << std::endl;
        } else {
            std::cout << "NO" << std::endl;
        }
    }

    return 0;
}

img



#include <iostream>
#include <vector>
using namespace std;

int main() {
    int T;
    cin >> T;

    vector<string>vt;
    while (T--) {
        int n, m, k;
        cin >> n >> m >> k;
        int totalCandies = n + k; // 总糖果数,包括从你自己手中拿出的糖果
        if (totalCandies < m) {
            vt.push_back("NO");
        }
        else if (totalCandies % m == 0) {
            vt.push_back("YES");
        }
        else {
            vt.push_back("NO");
        }
    }
    for (int i = 0; i < vt.size(); i++)
        cout << vt[i] << endl;

    return 0;
}

【以下回答由 GPT 生成】

问题描述: 在红太阳幼儿园中,有m个小朋友和n个糖果。现在需要将这n个糖果平均分配给这m个小朋友。如果糖果不够平均分配,还可以从你手中的k个糖果中拿出一部分分给小朋友们。请判断是否能完成糖果的平均分配。

解决方案如下:

  1. 首先,读取用户输入的测试数据的组数T。
  2. 对于每一组测试数据,依次执行以下步骤:
  3. 读取糖果数量n,小朋友数量m和你手中的糖果数量k。
  4. 计算每个小朋友分得的平均糖果数量avg,即avg = n / m。
  5. 判断糖果数量是否能够被小朋友数量整除,如果不能则输出 "NO" 并跳到下一组测试数据。
  6. 判断avg是否大于等于1,如果是则输出 "YES" 并跳到下一组测试数据。
  7. 判断k是否大于等于m-1,如果是则输出 "YES",否则输出 "NO"。
  8. 完成所有测试数据的处理后,结束程序。

以下是相应的C++代码实现:

#include <iostream>
using namespace std;

int main() {
    int T;
    cin >> T; // 读取测试数据的组数

    for (int t = 0; t < T; t++) {
        int n, m, k;
        cin >> n >> m >> k; // 读取糖果数量n,小朋友数量m和你手中的糖果数量k

        int avg = n / m; // 计算每个小朋友分得的平均糖果数量

        if (n % m != 0) { // 判断糖果数量是否能够被小朋友数量整除
            cout << "NO" << endl;
            continue;
        }

        if (avg >= 1) { // 判断avg是否大于等于1
            cout << "YES" << endl;
            continue;
        }

        if (k >= m - 1) { // 判断k是否大于等于m-1
            cout << "YES" << endl;
        } else {
            cout << "NO" << endl;
        }
    }

    return 0;
}

使用上述代码,可以解决该问题,并通过示例的测试数据。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^