- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)