free pascal 高难度题目 10
1、节目主持人准备从N名学生中挑选一名幸运观众,因为大家都想争当幸运观众,老师只好采取这样的办法:全体同学排成一列,由前面往后面依顺序报数1,2,1,2,…,报单数的同学...
1、节目主持人准备从N名学生中挑选一名幸运观众,因为大家都想争当幸运观众,老师只好采取这样的办法:全体同学排成一列,由前面往后面依顺序报数1,2,1,2,…,报单数的同学退出队伍,余下的同学向前靠拢后再重新由前往后1,2,1,2,…报数,报单数者退出队伍,如此下去最后剩下一人为幸运观众。编程找出幸运观众在原队列中站在什么位置上?(N由键盘输入,N < 255)。
2、1267*1267=1605289,表明等式右边是一个七位的完全平方数,而这七个数字互不相同。编程求出所有这样的七位数。
3、 有一组13个齿轮互相啮合,各齿轮啮合的齿数依次分别为6,8,9,10,12,14,15,16,18, 20,21,22,24、 问在转动过程中同时啮合的各齿到下次再同时啮合时,各齿轮分别转过了多少圈?
打印一个n*n的数字螺旋方阵。这个数字方阵的特点是:以左上角1开始向下,数字以外圈向里按自然数顺序转圈递增,一直到中心位置的n2为止。例如n =3:
1 8 7
2 9 6
3 4 5
5、下面是一个4*4的矩阵,它的特点是:(1)矩阵的元素都是正整数;(2)数值相等的元素相邻,这样,这个矩阵就形成了一级级“平台”,其上最大的“平台”面积为8,高度(元素值)为6。若有一个已知的N*N的矩阵也具有上面矩阵的特点,求矩阵最大“平台”的面积和高度。
帮帮忙阿!!!!!! 展开
2、1267*1267=1605289,表明等式右边是一个七位的完全平方数,而这七个数字互不相同。编程求出所有这样的七位数。
3、 有一组13个齿轮互相啮合,各齿轮啮合的齿数依次分别为6,8,9,10,12,14,15,16,18, 20,21,22,24、 问在转动过程中同时啮合的各齿到下次再同时啮合时,各齿轮分别转过了多少圈?
打印一个n*n的数字螺旋方阵。这个数字方阵的特点是:以左上角1开始向下,数字以外圈向里按自然数顺序转圈递增,一直到中心位置的n2为止。例如n =3:
1 8 7
2 9 6
3 4 5
5、下面是一个4*4的矩阵,它的特点是:(1)矩阵的元素都是正整数;(2)数值相等的元素相邻,这样,这个矩阵就形成了一级级“平台”,其上最大的“平台”面积为8,高度(元素值)为6。若有一个已知的N*N的矩阵也具有上面矩阵的特点,求矩阵最大“平台”的面积和高度。
帮帮忙阿!!!!!! 展开
展开全部
解:①根据题目提供条件与数据,建立如下关系代码表:
国家名
中国
意大利
英国
日本
法国
俄国
西班牙
德国
宾客代码
A
B
C
D
E
F
G
H
语言代号
1
2
3
4
5
6
7
8
懂外语代号
3
7
5
1
8
2
4
6
总代码
A13
B27
C35
D41
E58
F62
G74
H86
表中总代码实际上是前三项代码的归纳:第一个字母表示哪国人;第二个数字表示本国语代号;第三个数字表示懂哪国外语。如A13,A表示中国人,1表示汉语(本国语),3表示会说英语。所以每个宾客的情况均用总代码(三个数据组成的字符串)表示;
②定义由8个元素组成的数组(NAME),元素类型为字符串类型(String);
③元素的下标号影响各人座位关系,必须满足后一个元素的下标号应与前一个元素字符串中的第三个数据相同。例如:若第一个位置总代码为A13,则第二个位置应根据A13中最后的3,安排C35。即A与C可以交谈。以此类推。
用字符串处理函数COPY,截取字符串的第一个字母作为宾客代码打印,再取第三个字符,用VAL将其转换成数字,将这个数字作为下标号,把这个下标号的元素安排在旁边(相邻);
④重复步骤③的方法,安排其后的元素,直到八个数据全部处理完为止。
Pascal程序:
Program Exam54;
const name : array[1..8]of string {定义字串类型数组并赋常量}
=('A13','B27','C35','D41','E58','F62','G74','H86');
Var i, code: integer; {整数类型}
x: 1..8; {子界类型}
s : string; {字符串类型}
Begin
s:=copy(name[1],1,1); {截取第一个元素字串的第一个字符}
write(s:4); {确定第一个位置}
s:=copy(name[1],3,1); {截取元素字串的第三个字符作为相邻}
Val(s,x,code); {将字串s的值转换成数字存入 x}
for i:=1 to 7 do {确定后面7个位置}
Begin
s:=copy(name[x],1,1); {找到相邻者的代码}
write(s:4); {打印相邻者代码}
s:=copy(name[x],3,1); {确定下一个相邻元素}
Val(s,x,code);
end;
readln
End.
国家名
中国
意大利
英国
日本
法国
俄国
西班牙
德国
宾客代码
A
B
C
D
E
F
G
H
语言代号
1
2
3
4
5
6
7
8
懂外语代号
3
7
5
1
8
2
4
6
总代码
A13
B27
C35
D41
E58
F62
G74
H86
表中总代码实际上是前三项代码的归纳:第一个字母表示哪国人;第二个数字表示本国语代号;第三个数字表示懂哪国外语。如A13,A表示中国人,1表示汉语(本国语),3表示会说英语。所以每个宾客的情况均用总代码(三个数据组成的字符串)表示;
②定义由8个元素组成的数组(NAME),元素类型为字符串类型(String);
③元素的下标号影响各人座位关系,必须满足后一个元素的下标号应与前一个元素字符串中的第三个数据相同。例如:若第一个位置总代码为A13,则第二个位置应根据A13中最后的3,安排C35。即A与C可以交谈。以此类推。
用字符串处理函数COPY,截取字符串的第一个字母作为宾客代码打印,再取第三个字符,用VAL将其转换成数字,将这个数字作为下标号,把这个下标号的元素安排在旁边(相邻);
④重复步骤③的方法,安排其后的元素,直到八个数据全部处理完为止。
Pascal程序:
Program Exam54;
const name : array[1..8]of string {定义字串类型数组并赋常量}
=('A13','B27','C35','D41','E58','F62','G74','H86');
Var i, code: integer; {整数类型}
x: 1..8; {子界类型}
s : string; {字符串类型}
Begin
s:=copy(name[1],1,1); {截取第一个元素字串的第一个字符}
write(s:4); {确定第一个位置}
s:=copy(name[1],3,1); {截取元素字串的第三个字符作为相邻}
Val(s,x,code); {将字串s的值转换成数字存入 x}
for i:=1 to 7 do {确定后面7个位置}
Begin
s:=copy(name[x],1,1); {找到相邻者的代码}
write(s:4); {打印相邻者代码}
s:=copy(name[x],3,1); {确定下一个相邻元素}
Val(s,x,code);
end;
readln
End.
富港检测东莞有限公司
2024-12-25 广告
2024-12-25 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测东莞有限公司提供
展开全部
一楼 --!先汗一个
看看这个再说难
描述
n个人排成一圈。从某个人开始,按顺时针方向依次编号。从编号为1的人开始顺时针“一二一”报数,报到2的人退出圈子。这样不断循环下去,圈子里的人将不断减少。由于人的个数是有限的,因此最终会剩下一个人。试问最后剩下的人最开始的编号。
输入格式
一个正整数n,表示人的个数。输入数据保证数字n不超过100位。
输出格式
一个正整数。它表示经过“一二一”报数后最后剩下的人的编号。
看看这个再说难
描述
n个人排成一圈。从某个人开始,按顺时针方向依次编号。从编号为1的人开始顺时针“一二一”报数,报到2的人退出圈子。这样不断循环下去,圈子里的人将不断减少。由于人的个数是有限的,因此最终会剩下一个人。试问最后剩下的人最开始的编号。
输入格式
一个正整数n,表示人的个数。输入数据保证数字n不超过100位。
输出格式
一个正整数。它表示经过“一二一”报数后最后剩下的人的编号。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1:
program one;
var n,i,s:integer;
begin
readln(n);
i:=0;
s:=1;
while s<n do
begin
i:=i+1;
s:=s*2;
end;
if s=n then writeln(s)
else writeln(s div 2);
end.
program one;
var n,i,s:integer;
begin
readln(n);
i:=0;
s:=1;
while s<n do
begin
i:=i+1;
s:=s*2;
end;
if s=n then writeln(s)
else writeln(s div 2);
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1题答案:
program n1;
var
begin
read(n);
for i:=1 to n do
begin
a[i,1]:=1;
a[i,2]:=i;
end;
repeat
m:=0;
for i:=1 to n do
if i mod 2 = 1 then
a[i,1]:=0;
for i:=1 to n do
begin
m:=m+a[i,1];
if a[i,1]=0 then
if i<=n then
a[i,1]:=a[i+1,1];
end;
n:=n div 2;
until m=1;
writeln(a[1,2]);
end.
program n1;
var
begin
read(n);
for i:=1 to n do
begin
a[i,1]:=1;
a[i,2]:=i;
end;
repeat
m:=0;
for i:=1 to n do
if i mod 2 = 1 then
a[i,1]:=0;
for i:=1 to n do
begin
m:=m+a[i,1];
if a[i,1]=0 then
if i<=n then
a[i,1]:=a[i+1,1];
end;
n:=n div 2;
until m=1;
writeln(a[1,2]);
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
……全都是数论啊……
不过,难度貌似不高的说,丢给LS解。
不过,难度貌似不高的说,丢给LS解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询