| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1351 人关注过本帖
标题:一个有趣的题!求解!
只看楼主 加入收藏
lzy19870721
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-3-11
收藏
 问题点数:0 回复次数:16 
一个有趣的题!求解!
某国度的人,喜欢玩这样一个游戏,在一块板上写着一行数,共n个。两个游戏者,轮流从最右或最左取一个数。刚开始,每个游戏者的得分均为20。如果一个游戏者取下一个数,则将该数的值加到该游戏者的得分上,最后谁的得分最高谁就赢了游戏。给出这n个数( 从左往右), 假设游戏者都是非常聪明的,问最后两个人的得分(假设第一个人首先取数)。
搜索更多相关主题的帖子: 求解 
2008-11-22 21:22
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
两个循环 一个 取 奇数 加起来 一个取 偶数  加起来
比较 两数
2008-11-22 21:35
lzy19870721
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-3-11
收藏
得分:0 
他取左取右不定的,要让自己的得分最高。。。。没这么简单
2008-11-22 21:40
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
收藏
得分:0 
唉 这题好麻烦啊。。。。
2008-11-22 22:10
lzy19870721
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-3-11
收藏
得分:0 
谁有一点思路没?求教高手
2008-11-22 22:18
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
收藏
得分:0 
首先你要检测两头的两个数字并进行比较。依次进行直至结束。
2008-11-22 22:27
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
你能不能解释一下?如果有一行数,n1,n2,n3,n4,n5,n6,n7,n8.

两个人 a,b;

是a取n1,然后b取n2,或者是a取n1,然后b取n8呢?

再或者是a取n1,b取n2,然后a取n8,b取n7呢?

再或者是a取n1,b取n8,然后a取n7,b取n2  ?
2008-11-22 22:48
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
收藏
得分:0 
先比较N1与N8然后如果N1大再比较N1与N2如果N2大,N1就不能取,然后比较N8与N7,如果N7大,则比较N2与N7,如果N7大则取N1;否则比较N2-N1与N7-N8的差,前者大就取N8否则取N1.
我是这么想的。
2008-11-22 23:08
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
奇个数的时候 处理不正确 但是 好象也不能有奇个数 这样 就不公平了
不知道 是否 理解了 lz的意思?
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main()
{
  const int NUM=10;  
  int var[NUM],i,j=0,SumA=20,SumB=20,Begin,End;
  for (i=0;i!=NUM;++i)
  {
    scanf("%d",&var[i]);    
  }
  Begin=0,End=NUM-1;
  while (j<NUM/2+1 && Begin<=End)
  {
    if (var[Begin]>=var[End]) SumA+=var[Begin++];                            
    else SumA+=var[End--];
    if (var[Begin]>=var[End]) SumB+=var[Begin++];
    else SumB+=var[End--];
    j++;
  }
  printf("SumA=%d,SumB=%d",SumA,SumB);
  system("pause");  
  return 0;
}
2008-11-22 23:13
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
感觉这题目就有点问题:不够公平的(对后取数的人不公平)。
当只有两个数时,先取数的至少不会输,而后取数的人则怎么都不会嬴,因为两个人都是非常聪明的。
同样,当还剩最后两个数时,先取数的总会占优势的(除非最后两个数刚号相等),在前面,先取数者只要保证自己取的数不小于后者就行了,二后者则必须得保证自己取的数要大于前者。
至于取数顺序应该是取还未被取的数的两头选一。
只能想到这里了,怎么编写,没的思路的啊,郁闷。
2008-11-23 13:09
快速回复:一个有趣的题!求解!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012998 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved