首页 > 编程语言 >C++题解(6) 信息学奥赛一本通:2069:【例2.12 】糖果游戏

C++题解(6) 信息学奥赛一本通:2069:【例2.12 】糖果游戏

时间:2024-07-16 16:00:41浏览次数:19  
标签:11 分给 题解 C++ 2069 3.0 5d% 小朋友 糖果

【题目描述】

某幼儿园里,有5个小朋友编号为1、2、3、4、5,他们按自己的编号顺序围坐在一张圆桌旁。他们身上都有若干个糖果(键盘输入),现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果有多余的糖果,则立即吃掉),自己留一份,其余两份分给他的相邻的两个小朋友。接着2号、3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果。

【输入】

5个小朋友的糖果数。

【输出】

游戏后5个小朋友的糖果数。(按5位宽度输出)

【输入样例】

8 9 10 11 12

【输出样例】

   11    7    9   11    6

【解题思路】

 把1、2、3、4、5号小朋友用变量a、b、c、d、e代替

示意图:

           a

   e               b

       d       c

与 a 相邻的是 e 和 d ,与 b 相邻的是 a 和 c ……以此类推。

a 分给 e 和 d a/3的糖果,自己保留 a/3(整除直接省略多余的糖果,也就是吃掉)。

【参考答案】 

#include<iostream>

using namespace std;

int main()
{
	int a,b,c,d,e; // a b c d e 分别代表 1 2 3 4 5 号同学

    cin>>a>>b>>c>>d>>e;

	a=a/3.0; //是除 3.0,不是除 3
    b=b+a; // a 分给 b
    e=e+a; // a 分给 e

	b=b/3.0;
    a=a+b;
    c=c+b;

	c=c/3.0;
    b=b+c;
    d=d+c;

	d=d/3.0;
    c=c+d;
    e=e+d;

	e=e/3.0;
    d=d+e;
    a=a+e;

	printf("%5d%5d%5d%5d%5d",a,b,c,d,e); //域宽为 5

    return 0;
}

标签:11,分给,题解,C++,2069,3.0,5d%,小朋友,糖果
From: https://blog.csdn.net/2301_78151773/article/details/140413152

相关文章

  • CF141B Hopscotch 题解
    Hopscotch题面翻译有nnn个形状和大小都一致的正方体积木,积木堆积的样式是第一层只有一个正方体,然后上面就开始循环了,循环体为:第一层是一个正方体,第二层是两个正方体。......
  • AT_dp_a Frog 1 题解
    Frog1题面翻译NNN个石头,编号为1,2......
  • 【C++】链表相关的项目(2.0)
    链表相关的项目1.0需要请点击       ---------------------------------------------------准备工作首先弄几个可能会需要的头文件:#include<stdio.h>#include<stdlib.h>#include<string.h>typedefintADT;//定义自定义数据类型​​因为写的是关于......
  • C++11平凡可复制类型检测is_trivially_copyable
    1.C++基础回顾     在C++11中,平凡类型(TrivialType)、平凡可复制类型(TrivialCopyable)、标准布局类型(Standard-layoutType)是描述类在内存中布局特性的术语,它们与类的构造、拷贝、赋值和销毁行为有关,也影响着类的内存布局和对齐方式。下面用通俗的语言解释这些概念:1.1.平......
  • C++获取当前毫秒数
    转自https://www.cnblogs.com/c9080/p/17509268.html,在C++11中,可以使用<chrono>头文件中的std::chrono::system_clock类来获取当前时间戳。它提供了多种精度和分辨率的时钟类型,其中最常用的是系统时钟。以下是一个示例程序,演示如何使用std::chrono::system_clock类获取......
  • C++ 用智能指针这样包装 this 指针是否可行
    #include<iostream>#include<memory>usingnamespacestd;classA;classB{public:B(shared_ptr<A>a){pa=a;cout<<"B构造..."<<endl;}~B(){cout<<&quo......
  • C++游戏篇1“很好的游戏,使我手指旋转”(原创)
    话不多说,上代码!#include<bits/stdc++.h>#include<windows.h>usingnamespacestd;intGe,Fen,timp,F,a[22][6];doubleShi,B;voidS(intForgC,intBackC){WORDwColor=((BackC&0x0F)<<4)+(ForgC&0x0F);SetConsoleTextAttribute(GetS......
  • C++转换进制
    前言本蒟蒻:让C++转进制?我都不会转,更何况让C++转。正文转进制,我们要知道36进制的0-35都用什么表示。0-9就是0-9,而10-35分别是ABCDEFG........RSTUVWXYZ。我们可以设一个字符串表示0-35:strings="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";重要的一步来了,参考以下方法,用while......
  • 底软驱动 | 大厂面试爱考的C++内存相关
    文章目录C++内存相关C++内存分区C++对象的成员函数存放在内存哪里堆和栈的区别堆和栈的访问效率“野指针”有了malloc/free为什么还要new/deletealloca内存崩溃C++内存泄漏的几种情况内存对齐柔性数组参考推荐阅读C++内存相关本篇介绍了C++内存相关的知识。C++......
  • 【题解】AT_abc192_d [ABC192D] Base n
    洛谷AT_abc192_d题解\(66pts\)其实我也不知道为什么考场上会想出dfs这种做法(严格来说应该不算),但是最后的分数还是比较可观的。主要思路首先,将\(X\)视为一个\(n\)进制数\(X'\)。枚举\(n\)进制,从字符串\(X\)中的最大数字加\(1\)开始。在此过程中,如果\(X'\)比......