首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

杭电OJ2060-2069

background: Philip likes to play the QQ game of Snooker when he wants a relax, though he was just a little vegetable-bird. Maybe you hadn’t played that game yet, no matter, I’ll introduce the rule for you first. There are 21 object balls on board, including 15 red balls and 6 color balls: yellow, green, brown, blue, pink, black. The player should use a white main ball to make the object balls roll into the hole, the sum of the ball’s fixed value he made in the hole is the player’s score. The player should firstly made a red ball into the hole, after that he gains red-ball’s value(1 points), then he gets the chance to make a color ball, then alternately. The color ball should be took out until all the red-ball are in the hole. In other word, if there are only color balls left on board, the player should hit the object balls in this order: yellow(2 point), green(3 point), brown(4 point), blue(5 point), pink(6 point), black(7 point), after the ball being hit into the hole, they are not get out of the hole, after no ball left on board, the game ends, the player who has the higher score wins the game. PS: red object balls never get out of the hole. I just illustrate the rules that maybe used, if you want to contact more details, visit http://sports.tom.com/snooker/ after the contest. for example, if there are 12 red balls on board(if there are still red ball left on board, it can be sure that all the color balls must be on board either). So suppose Philp can continuesly hit the ball into the hole, he can get the maximun score is 12 × 1 (12 red-ball in one shoot) + 7 × 12(after hit a red ball, a black ball which was the most valuable ball should be the target) + 2 + 3 + 4 + 5 + 6 + 7(when no red ball left, make all the color ball in hole). Now, your task is to judge whether Philip should make the decision to give up when telling you the condition on board(How many object balls still left not in the hole and the other player’s score). If Philp still gets the chance to win, just print “Yes”, otherwise print “No”.

01
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    [答疑]买家发起退款与买家撤消退款是什么关系

    杭大伟(28****23)13:27:26 问个UML用例之间的关系问题:在电商网站中,买家买到东西不满意,于是发起了退款。后来卖家说买家一点补偿。于是买家想撤消退款。 杭大伟(28****23)13:27:42 于是问题是:买家发起退款这个用例, 与买家撤消退款这个用例, 杭大伟(28****23)13:27:45 两者是什么关系? 杭大伟(28****23)13:27:48 扩展? 潘加宇(3504847)13:29:50 你的研究对象是"电商网站"? 杭大伟(28****23)13:30:01 是的。 潘加宇(3504847)13:30:24 就是两个用例嘛 潘加宇(3504847)13:30:27 不用扯上关系 杭大伟(28****23)13:31:06 可是如果 不事先走发起退款这个用例,撤消退款用例这个其实不存在的。 潘加宇(3504847)13:31:35 "不事先走发起退款这个用例,撤消退款用例这个其实不存在的"这个想法是不对的 杭大伟(28****23)13:32:04 为什么呢? 潘加宇(3504847)13:32:58 是否可以使用系统来"撤消退款"用例,判断标准是"存在符合退款条件的订单" 潘加宇(3504847)13:33:41 至于系统如何达到"存在符合退款条件的订单"的状态,不一定和某个特定用例相关 杭大伟(28****23)13:33:50 判断标准是:1,必须有退款(买家已经发过),2, 退款还在退款中。 潘加宇(3504847)13:34:23 这个细微的问题恰好是软件复杂性的关键所在 杭大伟(28****23)13:35:06 嗯,我现在在做系统用例,遇到这个问题,在用例图上如何表现 发起退款, 撤消退款, 杭大伟(28****23)13:35:23 感觉不是那么好表现。用扩展关系,感觉又不像又像。 潘加宇(3504847)13:36:46 两个独立的用例。因为退款结束,执行者就走开了,交互已经完毕。什么时候想用系统来取消,是另一件事情。取消并非退款的分支。 潘加宇(3504847)13:37:19 你如果这样想就麻烦了 潘加宇(3504847)13:37:36 存款是不是取款的扩展啊 潘加宇(3504847)13:38:05 要想取款,是不是先得用系统存款? 杭大伟(28****23)13:38:10 撤消退款是用户主动发起的。 杭大伟(28****23)13:38:19 不是系统来发起的。 杭大伟(28****23)13:38:42 又感觉 撤消退款不能作为一个用例。软件方法里说到,系统用例是用户的一种期望,撤消退款显然也不能作为用户的期望。就像软件方法中的登录,登录不能作为系统用例一样。 潘加宇(3504847)13:38:57 撤销退款和登录不一样 潘加宇(3504847)13:40:03 我刚才讲的 至于系统如何达到"存在符合退款条件的订单"的状态,不一定和某个特定用例相关 你理解没有? 潘加宇(3504847)13:40:14 状态和行为的区别 杭大伟(28****23)13:40:55 但您的意思是,撤消退款就单独做为一个用例么 潘加宇(3504847)13:41:34 拿开饭馆举例,顾客来吃饭,喝茶、打包、办宴会,城管来收管理费,都是用例。 但是"进门坐下"不是 潘加宇(3504847)13:41:46 我上面已经说清楚了 杭大伟(28****23)13:45:38

    01

    6-基本数据类型

    本文目录 一、取值范围 二、char 三、说明符 四、强制类型转换 C语言有丰富的数据类型,因此它很适合用来编写数据库,如DB2、Oracle等大型数据库都是C语言写的。其中,提供了4种最常用的基本数据类型:char、int、float、double,使用这些数据类型,我们就可以定义相应的变量来存储数据。这讲就来深入研究一下基本数据类型的一些使用细节。 一、取值范围 我们已经知道,不同数据类型所占的存储空间是不一样的。比如在64bit编译器环境下,char类型占用1个字节,int类型占用4个字节。字节长度不一样,包含的二进制位数就不一样,能表示的数据范围也就不一样。因此,int类型能表示的数据范围肯定比char类型大。下面来简单算算64bit编译器环境下int类型的取值范围。 1.推算int类型的取值范围 int类型占用4个字节,所以一共32位,那么按理来说,取值范围应该是:0000 0000 0000 0000 0000 0000 0000 0000~1111 1111 1111 1111 1111 1111 1111 1111,也就是10进制的0 ~ 232 - 1。但是int类型是有正负之分的,包括了正数和负数,那怎么表示负数呢?就是拿最高位来当符号位,当最高位为0就是正数,最高位为1则是负数。即:1000 0000 1001 1011 1000 0000 1001 1011就是一个负数,0000 1001 0000 1101 0000 1001 0000 1101是一个正数。由于最高位是0才代表正数,因此最大的正数是0111 1111 1111 1111 1111 1111 1111 1111,也就是231 - 1。而最小的负数就是1000 0000 0000 0000 0000 0000 0000 0000,也就是-231(为什么是这个值呢?可以根据前面章节提到的负数的二进制形式,自己去换算一下,看看1000 0000 0000 0000 0000 0000 0000 0000是不是-231。算不出也不用去纠结,不影响写代码,知道有这么一回事就完了)。因此,int类型的取值范围是-231 ~ 231 - 1。 注意:这个推算过程是不用掌握的,大致知道过程就行了,而且这个结论也不用去记,大致知道范围就行了。 2.各种数据类型的取值范围 int类型的取值范围已经会算了,那么其他数据类型的取值范围就能够以此类推。 (注:float和double由于是小数,它们的存储方式是特别不一样的,所以它们取值范围的算法也很不一样,这里不做介绍,也不用去掌握。e38表示乘以10的38次方,e-38表示乘以10的负38次方。) 上面表格中列出的只是64bit编译器环境下的情况。如果你的编译器是16bit或者32bit,这些数据类型的取值范围肯定是不一样的。比如int类型,在16bit编译器环境下是占用2个字节的,共16bit,所以int类型的取值范围是:-215 ~ 215 - 1。 3.数值越界 1> 例子演示 前面已经看到,每种数据类型都有自己的取值范围。如果给一个变量赋值了一个超出取值范围的数值,那后果会不堪设想。

    01
    领券