数学课代表(pascal) 20

描述Description启迪小学六(3)班王老师要选数学课代表,班级的每位同学都希望能当上数学课代表。王老师说,为了公平起见,出一道题考考大家,将班上每位同学编上学号1... 描述 Description
启迪小学六(3)班王老师要选数学课代表,班级的每位同学都希望能当上数学课代表。王老师说,为了公平起见,出一道题考考大家,将班上每位同学编上学号1,2,3,……,并按顺序围成一个圈。接下来,发给每位同学一张卡片,卡片有一个非常大的数字。王老师说,大家按照卡片上的数字x,从1号、2号、3号同学……一圈圈地数,最后数到x的那位同学的学号就是答案。哪位同学能在最短时间找到答案,将由他来担任课代表。比如:班上共有50位同学,张明同学拿到的卡片上的数字是57,那么答案就是7(表示数到学号为7的同学)。张明找到爱好编程的你,请你帮他完成这个任务。

输入格式 Input Format
第一、二行分别读入正整数N和M。
其中N、M满足2≤N≤10^8(表示10的8次方),2≤M≤10^1000(表示10的1000次方,位数过长,读取时需要用ansistring类型)

输出格式 Output Format
仅一个整数,即数到的那位同学的学号
输入样例
50
57
输出样例
7
展开
 我来答
洪浚DONG
2014-03-26
知道答主
回答量:10
采纳率:0%
帮助的人:5.6万
展开全部
program e1;
var m:array [1..1001] of integer;
b,n,c,l,i:longint;
o:string[1];
begin
assign(input,'description.in');
assign(output,'description.out');
reset(input);
rewrite(output);
readln(n);
while not(eoln) do {输入m}
begin
l:=l+1;
read(o);
val(o,i);
m[l]:=i;
end;
i:=m[1];
b:=1;
while (i<n) and (b<l) do
begin
b:=b+1;
i:=i*10+m[b];
end;
for c:=b+1 to l do {低精除}
begin
i:=i mod n;
i:=i*10+m[c];
end;
if i mod n=0 then writeln(n) {如果余数是0,则是最后一位同学,否则求余数}
else writeln(i mod n);
close(input);
close(output);
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SoInteresting
2014-04-06
知道答主
回答量:31
采纳率:0%
帮助的人:22万
展开全部
洪浚DONG 正解,先高精除,再减
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-28
展开全部
zzf啊,你居然度娘??!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-29
展开全部
难,自己想,加油
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式