首页 > 其他分享 >分糖果

分糖果

时间:2023-04-18 18:46:04浏览次数:42  
标签:10 cout 小孩 int sweet 糖果

分糖果:

10个小孩围成一圈分糖果,老师分给第1个小孩10块,第2个小孩2块,第3个小孩8块,第4个小孩22块,第5个小孩16块,第6个小孩4块,第7个小孩10块,第8个小孩6块,第9个小孩14块,第10个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖块数一样多吗?每人各有多少块糖?

解题思路:将10个小孩的糖果数放在数组sweet中,条件判断如果每个人的糖果数不一样则利用循环计算每个人要给右边人的糖果数(偶数直接除2,奇数加1后除2)储存在数组a中,同时把a中的值赋给sweet,利用for循环计算每个人分完后的糖果数,后次数加一;如果一样则输出次数以及每人的糖果数。条件可以用函数来判断糖果数是否相等,相等则返回1,不相等则返回0。

代码:

#include<iostream>

#include<iomanip>

using namespace std;

int pan(int sweet[10])

{

    for(int i=0;i<10;i++)

    {

        if(sweet[0]!=sweet[i])

            return 0;

    }

    return 1;

}

void chu(int sweet[10],int n)

{

    cout<<setw(2)<<n;

    for(int i=0;i<10;i++)

    {

        cout<<setw(4)<<sweet[i];

    }

    cout<<endl;

}

int main()

{

    int sweet[10]={10,2,8,22,16,4,10,6,14,20};

    int a[10];

    int i,n=0;

    cout<<"child  1   2   3   4   5   6   7   8   9   10"<<endl;

    cout<<"..................................................."<<endl;

    cout<<"time"<<endl;

    while(!pan(sweet))

    {

        for(i=0;i<10;i++)

        {

            if(sweet[i]%2==0)

                a[i]=sweet[i]=sweet[i]/2;

            else

                a[i]=sweet[i]=(sweet[i]+1)/2;

        }

        for(i=0;i<9;i++)

        {

            sweet[i+1]=sweet[i+1]+a[i];

        }

        sweet[0]=sweet[0]+a[9];

        n++;

        chu(sweet,n);

    }

 

    return 0;

}

本题体会:利用函数来简化主函数中的内容

 

标签:10,cout,小孩,int,sweet,糖果
From: https://www.cnblogs.com/zljzy/p/17323151.html

相关文章

  • 糖果摄影师隐私政策
    糖果摄影师隐私政策 北京时间共舞科技有限公司是糖果摄影师的运营者(以下称“糖果摄影师”或“我们”),我们非常重视用户的隐私和个人信息保护。在使用我们的产品与/或服务时,可能会收集和使用您的相关信息。我们希望通过《糖果摄影师隐私政策》(“本隐私政策”)向您说明我们在您使用......
  • 分糖果
     #include<iostream>usingnamespacestd;intf(inta[]){ inti,f=0; for(i=0;i<=9;i++){ if(a[0]!=a[i]) f=1; }returnf;}intmain(){ inta[10]={10,2,8,22,16,4,10,6,14,20}; intt[10]; intcount=0; while(f(a)) { for(inti=0;i<=9;i++){ if(a[......
  • 糖果 Candy uva1639
    有两个盒子各有n(n<=2e5)个糖,每天随机选一个(概率分别为p,1-p),然后吃一颗糖。直到有一天,没糖了!输入n,p,求此时另一个盒子里糖的个数的数学期望   假设最后某个盒子有k颗糖,然后计算概率即可 #include<iostream>#include<cstring>#include<algorithm>#include<cmath>u......
  • day 34 1005.K次取反后最大化的数组和 | 134. 加油站 | 135. 分发糖果
    1005.K次取反后最大化的数组和给定一个整数数组A,我们只能用以下方法修改该数组:我们选择某个索引i 并将A[i]替换为-A[i],然后总共重复这个过程K次。(我们可以多次选择同一个索引i。)以这种方式修改数组后,返回数组可能的最大和。示例1:输入:A=[4,2,3],K=1输出:5解释:......
  • 糖果美味值 (动态规划)
    描述:有n天,每天有一种糖果,糖果具有一定美味值;规定小美今天吃了明天就不能吃,但有k次机会打破规则。求这n天小美能吃到的最大美味值。第一行输入n,k;第二行输入n天中每天的糖果的美味值。输出最大美味值。样例输入:711234567输出:19importjava.util.Scanner;/**......
  • 华为OD机试 分糖果
    本期题目:分糖果......
  • 【LeetCode贪心#07】分糖果
    发糖果力扣题目链接(opensnewwindow)老师想给孩子们分发糖果,有N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些......
  • 0007 ALGO1000-kAc给糖果你吃
    试题算法训练kAc给糖果你吃比较简单,排序后拿数量多的importjava.util.Arrays;importjava.util.Scanner;/***@authorHuaWang135608*@date2023.03.1613:1......
  • LeetCode135 分发糖果
    题目描述n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到1个糖果。相邻两个孩子评分更......
  • 算法随想Day30【贪心算法】| LC1005-K次取反后最大化的数组和、LC134-加油站、LC135-
    LC1005.K次取反后最大化的数组和借用评论区的一句话——“普通人思维,无数个ifelse”。voidNegationsLoop(vector<int>&nums,intk,intpos){if(k%2!=0......