usaco初学1.1.1(ride)试题源程序和测试数据.docx

usaco初学1.1.1(ride)试题源程序和测试数据.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Your Ride Is Here(ride) 众所周知,在每一个彗星后都有一只 UFO这些UFO寸常来收集地球上的忠 诚支持者。不幸的是,他们的飞碟每次出行都只能带上一组支持者。 因此,他 们 要用一种聪明的方案让这些小组提前知道谁会被彗星带走。他们为每个彗星起了 一个名字,通过这些名字来决定这个小组是不是被带走的那个特定的小组 (你认 为 是谁给这些彗星取的名字呢?)。关于如何搭配的细节会在下面告诉你;你 的任务是写一个程序,通过小组名和彗星名来决定这个小组是否能被那颗彗星后 面的UFO带走。 小组名和彗星名都以下列方式转换成一个数字:最终的数字就是名字中所有 字母的积,其中“ A”是1,“Z”是26。例如,“ USAC”小组就是 21*19*1*3*15=17955。如果小组的数字 mod 47等于彗星的数字 mod 47,你就得 告诉这个小组需要准备好被带走!(记住“ a modb”是a除以b的余数;34 mod 10等于4) 写出一个程序,读入彗星名和小组名并算出用上面的方案能否将两个名字搭 配起来,如果能搭配,就输出“ GO,否则输出“ STAY。小组名和彗星名均是 没有空格或标点的一串大写字母(不超过 6个字母)。 [编辑]输入格式(ride.in ) 第1行:一个长度为1到6的大写字母串,表示彗星的名字 第2行:一个长度为1到6的大写字母串,表示队伍的名字 [编辑]输出格式(ride.out ) 仅一行,包括“ GO或“ STAY [编辑]输入样例1 COMETQ HVNGAT [编辑]输出样例1 GO [编辑]输入样例2 ABSTAR USACO [编辑]输出样例2 STAY 解: import java.util.Sca nner; public class Ride { public static void main(String[] args) { Stri ng print = in put (); System. out .println(print); } public static String input() { Scanner sc = new Scanner(System. in); Stri ng groupName = sc.n extLi ne(); //小组名 Stri ng cometName = sc. nextLi ne(); //彗星名 int groupNum = 1; //小组名对应数计算的结果 int groupLen = groupName.length(); int cometNum = 1; //彗星名对应数计算的结果 int cometLen = cometName」ength(); for (int i = 0; i groupLen; i++) { groupNum *= (( char ) groupName.charAt(i) - 64); } groupNum %= 47; // 最终结果 for (int i = 0; i cometLen; i++) { cometNum *= (( char ) cometName.charAt(i) - 64); } cometNum %= 47; // 最终结果 if (groupNum == cometNum) return GO ; else return STAY ; } } { ID:lhkhry1 PROG:ride LANG:PASCAL } program usacoride; var a,b:string; c,d:int64; l1,l2,i:integer; fi,fo:text; begin assign(fi,ride.in); assign(fo,ride.out); reset(fi); rewrite(fo); readln(fi,a); readln(fi,b); l1:=length(a); l2:=length(b); c:=1; for i:=1 to l1 do c:=c*(ord(a[i])-ord(A)+1); d:=1; for i:=1 to l2 do d:=d*(ord(b[i])-ord(A)+1); c:=c mod 47; d:=d mod 47; if c =d then writeln(fo,GO) else writeln(fo,STAY); close(fi); close(fo); end. test 1 COMETQ HVNGAT test 2 STARAB USACO test 3 EARTH LEFTB test 4 PULSAR VENUS test 5 KANSAS UTAH te

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档