导航:首页 > 编程语言 > 糖果编程

糖果编程

发布时间:2022-01-20 02:07:24

1. c++拿糖果编程题目,请帮我讲解算法思想或者给出源代码,谢谢

因为HSP拿走a糖果,小于a的被ZM拿走,b糖果只能在大于a的糖果内选择。
对于给定一个a,b选择为大于a的糖果中Wb最小的那个,Wa-Wb的就会取到最大值。
1.我们让a=1,b=大于1的糖果中取Wb最小值的那个,得到Wa-Wb。
2.我们让a=2,b=大于2的糖果中取Wb最小值的那个,得到Wa-Wb。
...
然后在这n种Wa-Wb中找到最大值即为所有情况的最大值。
intmax=0;
for(inta=1;a<=n-1;++a){
for(intb=a+1;b<=n;++b){
找到最小的W[b]的下标;
}
intnewMax=W[a]-W[b];
if(newMax>max)max=newMax;
}
//代码时间复杂度为O(n^2),空间复杂度为O(1)。
如果让a从n-1到1,反过来,就可以不用每次都从头寻找最小值的Wb。
intWb=W[n];
intmax=0;
for(inta=n-1;a<=1;--a){
intnewMax=W[a]-Wb;
if(newMax>max)max=newMax;
if(W[a]<Wb)Wb=W[a];
}
//代码时间复杂度为O(n),空间复杂度为O(1)。

2. C语言编程题:分糖果,如图。没有思路T^T ,求大神

只有一个简单的思路,一起讨论一下:
第1个小孩给他一个(谁让他抢在前面呢:)
后面的小孩依次按规矩来,看应该给几个,可爱值高呢,就加一块,否则就减一块。
如果发现减到零了,那就倒回去,前面的人补一块。当然,不是全部补,只要补发到可爱值较高的地方就可以了。实际只需要计算一个总数,所以可以预先算好,直接加到总数中就行了。

开始时,第1个小孩1块糖,待补发的数量=0
第2个小孩先给2块糖,由于可爱值开始变高,待补发的数量=1
每3个小孩先给1块糖,由于可爱值变低,待补发的数量+1。
第4个小孩可爱值变低,待补发总数+1,照说应该给0块糖,当然不行,补发一块,前面的也都补一块,补3块。这个待补发数量还不能归零。当前第4个小孩的糖数应该修正成1。
第5个小孩给2块糖,由于可爱值开始变高,补发数量归零=1。
1+2+1+0+(3)+2=9

大体的思路应该就是这个样子。

3. C语言编程 幼儿园的小朋友分吃一堆糖果,第一天吃了一半,又吃了一颗;

#include <stdio.h>

void main()
{
int n = 1;
int i;
int sum = 0;
for(i = 10;i >= 1;i--)
{
sum += n;
n = (n+1)*2;
}
printf("总共有糖%d颗\n",sum);
}

4. 求!用c++面向对象编写 糖果自动售卖机

参考教科书上的ATM模型和编程。

5. 糖果编程和傲梦编程什么关系

俺糖果编程的话,好梦想它变成有很多都是不一样的,因为它是两个软件,然后变成在一起的,但是他俩不发生冲突。

6. c语言编程:分糖果

都已经回复过了,怎么还在重复发贴啊~~
#include<stdio.h>

int equal(int child[])//判断每个小孩手上的糖是否相等
{
int i;
for(i=1;i<10;i++)
if(child[i]!=child[i-1])
return 1;
return 0;
}

void main()
{
int child[10]={10,2,8,22,16,4,10,6,14,20};
int i, tmp0, tmp, sum=0, count=1;
while(equal(child)) {
tmp0= child[0];
for(i=1;i<10;i++) {//循环分糖
if(child[i]%2)
child[i]++;
tmp = child[i];
child[i-1]=child[i-1]/2+tmp/2;//分糖后
}
if(tmp0%2)
tmp0++;
child[9]=child[9]/2+tmp0/2;
count++;
}
printf("经过%d次后,大家手上都有%d块糖.\n", count, child[0]);
}

7. C++编程糖果共享游戏

#include <stdio.h>
#include <iostream.h>

void main()
{
int candy[100],stunum[10];//最多十组游戏,十组游戏总共参加人数不多于100人。
int whistle,k,l,sum=0,i=-1,j=0;
int x[10]; //一组游戏中学生糖果数的起始下标。
int g;//1时说明本组游戏还没完,继续进行。0则结束本组游戏。
int a,b,c;//缓存数据。
cout<<"请输入(数据以回车间隔,输入0结束):"<<endl;
while(stunum[i]!=0)//数据输入。
{
i++;
cin>>stunum[i]; //输入每一次游戏参加的人数。
x[i]=sum;//第i组游戏将从第x[i]个数据开始。
sum+=stunum[i];
if(stunum[i])
for(;j<sum;j++)//输入这一次游戏中每一位同学的糖果数。
{
cin>>candy[j];
if(candy[j]%2){cout<<"出错啦!";stunum[i]=0;break;}
}
}

for(k=0;k<i;k++)//游戏共有i组,进行第k组游戏。i不要改写。
{
whistle=0;//初始化游戏。
g=1;
a=x[k];//第k组游戏的人员上标和下标。
b=x[k]+stunum[k]-1;
while(g)//开始一次游戏。
{
for(l=a;l<=b;l++)//循环检查candy[k]中的a~b这一段有没有奇数糖果的人。
{
if(candy[l]%2) candy[l]++;
}
for(l=a;l<=b-1;l++)//检查是否已经每个人都有了一样多的糖果。
{
if(candy[l]==candy[l+1])continue;//暂时符合条件,继续检查。
else break;//检查到不合格的,结束检查。继续游戏。
}
if(l==b&&candy[l]==candy[l-1])//如果上个循环运行到末尾且糖果数组中第k段最后两个数相等,那么这组游戏结束。
{
cout<<whistle<<" "<<candy[l]<<endl;
g=0;
break;
}

whistle++;//吹哨。
//cout<<whistle<<endl;

c=candy[a]/2+candy[b]/2;//第一个人的糖果等于自己糖果的一半加上最后一个人的一半。
for(l=b-1;l>=a;l--)
{
candy[l+1]=candy[l]/2+candy[l+1]/2;//除了第一个人,其余人都是自己糖果的一半加上左边人的一半。
}
candy[a]=c;

for(l=a;l<=b-1;l++)//检查是否已经每个人都有了一样多的糖果。
{
if(candy[l]==candy[l+1])continue;//暂时符合条件,继续检查。
else break;//检查到不合格的,结束检查。继续游戏。
}
if(l==b&&candy[l]==candy[l-1])//如果上个循环运行到末尾且糖果数组中第k段最后两个数相等,那么这组游戏结束。
{
cout<<whistle<<" "<<candy[l]<<endl;
g=0;
}
}
}
getchar();
}

这是我从编译器里面直接拷出来的,调试了好久,判读那块调用函数的话可能会简单一点,但是思维是一点点打开的,所以只能说我这个程序还有改动的空间,但是今天搞疲劳了,你多给点分吧。

8. vb编程糖果问题编程

川农选了VB得同学看看就知道了哈!!!http://hi..com/20085557 里面有解答不错!!

9. C语言编程 吃糖果的问题 难!!!!

只有在T组糖果中,当任意的某一种糖果的数量 - 剩余T-1种糖果的数量之和 ≥ 2的情况下,才不可能吃完。其他任何情况下都可以吃完。

证明: 设糖果有T种, 每一种有X1,X2,X3,......XT 个。
步骤一: 取X1,X2,X3........XT 中最小值Xmin。(即标准地每种吃一个,直到把最少的那一组吃完)
那么接下来剩余的糖果种类为T - 1。每一种有X1-Xmin1,X2-Xmin1,X3-Xmin1.......XT-Xmin1 个
步骤二:在剩余的T-1种糖果中,找出数量最少的。(即X1-Xmin,X2-Xmin.......XT-Xmin中最少的)
那么剩余的糖果种类为T-2,每一种有X1-Xmin1-Xmin2,X2-Xmin1-Xmin2.......XT-Xmin1-Xmin2个
重复以上步骤直到最后只剩一种糖果,这个糖果的数量为,Xmax - Xmin1- Xmin2 - Xmin3 ....- Xmin(T-1)
当这个糖果的数量为0的情况下,就可以吃完。不为0的情况下就不可以吃完。
考虑最差情况,即每一次只吃最多的一种糖果和最少的一种糖果。(每次吃2种,其他糖果不吃)
那么最后剩余糖果的数量为 Xmax - X1-X2 -X3 ....-XT
当这个值为1时 则可以吃完。大于1时 则吃不完。

接下来编程就非常容易了。
遍历一遍T组糖果中每种糖果的数量,然后算一下就行了。

10. C语言编程 分糖果的游戏

离结束还有06分40秒
6分钟搞不定,放弃了。

阅读全文

与糖果编程相关的资料

热点内容
工作三年的大专程序员 浏览:726
java毕业设计文献 浏览:140
筹码集中度指标源码 浏览:478
listsortjava 浏览:183
plc闪光电路编程实例 浏览:299
socket编程试题 浏览:204
华为的服务器怎么设置从光驱启动 浏览:868
程序员真的累吗 浏览:326
学信网app为什么刷脸不了 浏览:873
天蝎vs程序员 浏览:992
单片机下载口叫什么 浏览:188
程序员的道 浏览:926
云服务器不实名违法吗 浏览:558
怎样查看文件夹图片是否重复 浏览:995
文件怎么导成pdf文件 浏览:808
打开sql表的命令 浏览:103
安卓手机如何面部支付 浏览:38
天元数学app为什么登录不上去 浏览:824
明日之后为什么有些服务器是四个字 浏览:104
安卓系统l1是什么意思 浏览:26