pascal题目现在给你N个0~9的数字并排成一列,同时还给出了一个取数长度L.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/19 23:36:04
pascal题目现在给你N个0~9的数字并排成一列,同时还给出了一个取数长度L.
规定先从第一个数字开始从左往右连续取L个数字,拼成一个产度为L位(最高位为0的L-1位数除外)的数,然后从第2个数字开始从左往右连续取L个数字.,这样,最后最多可以得到N-L+1个L位数.现在请你将这些L位数中的素数按才能够小到大的顺序输出(如果产生重复,只需要输出一个).
规定先从第一个数字开始从左往右连续取L个数字,拼成一个产度为L位(最高位为0的L-1位数除外)的数,然后从第2个数字开始从左往右连续取L个数字.,这样,最后最多可以得到N-L+1个L位数.现在请你将这些L位数中的素数按才能够小到大的顺序输出(如果产生重复,只需要输出一个).
program number;
//By 灰天飞雁 htfy96@qq.com 转载请保留此行
{
TestData:
Input:
12
6 6 5 3 6 5 3 1 6 1 4 1
3
Output:
653
}
Var
a:array[0..1000] of byte; //存储n个数字
t:array[0..1000] of qword; //存储取出的n-l+1个数中是质数的
n,i,l,top,j:longint;
now,w,y:qword;
Function iszhi(P:qword):boolean;inline;//判断一个数是否为质数
var
i:longint;
begin
for i:=2 to trunc(sqrt(p)) do
if p mod i=0 then exit(false);
exit(true);
end;
procedure check(P:qword);inline; //检查一个数是否为质数,若是则将其加入T中
begin
if iszhi(P) then
begin
inc(top);
t[top]:=p;
end;
end;
begin
top:=0; //top:T数组的栈顶
readln(n);
for i:=1 to n do
read(a[i]);
readln;
readln(l);
now:=0;//now 存储的是当前处理的长度为l的数
w:=1; //w代表当前处理那一位的权值
for i:=l downto 1 do
begin
now:=now+a[i]*w;
w:=w*10;
end; //这一部分是计算第1~L位的那个数字的
w:=w div 10; //最高位的权值在最后多乘了一个10
check(now); //检查第一个数
for i:=l+1 to n do //i代表了当前处理数的最后一位.当前处理数=前一个数除掉首位(mod w) *10 +当前这一位的数字(+a[i])
begin
now:=now mod w;
now:=now*10+a[i];
check(now);
end;
for i:=1 to top-1 do//数据不多就冒泡了……
for j:=i+1 to top do
if t[i]>t[j] then
begin
y:=t[i];
t[i]:=t[j];
t[j]:=y;
end;
for i:=1 to top do
if (t[i]<>t[i-1]) or (i=1) then //去重
writeln(t[i]);
readln
end.
//By 灰天飞雁 htfy96@qq.com 转载请保留此行
{
TestData:
Input:
12
6 6 5 3 6 5 3 1 6 1 4 1
3
Output:
653
}
Var
a:array[0..1000] of byte; //存储n个数字
t:array[0..1000] of qword; //存储取出的n-l+1个数中是质数的
n,i,l,top,j:longint;
now,w,y:qword;
Function iszhi(P:qword):boolean;inline;//判断一个数是否为质数
var
i:longint;
begin
for i:=2 to trunc(sqrt(p)) do
if p mod i=0 then exit(false);
exit(true);
end;
procedure check(P:qword);inline; //检查一个数是否为质数,若是则将其加入T中
begin
if iszhi(P) then
begin
inc(top);
t[top]:=p;
end;
end;
begin
top:=0; //top:T数组的栈顶
readln(n);
for i:=1 to n do
read(a[i]);
readln;
readln(l);
now:=0;//now 存储的是当前处理的长度为l的数
w:=1; //w代表当前处理那一位的权值
for i:=l downto 1 do
begin
now:=now+a[i]*w;
w:=w*10;
end; //这一部分是计算第1~L位的那个数字的
w:=w div 10; //最高位的权值在最后多乘了一个10
check(now); //检查第一个数
for i:=l+1 to n do //i代表了当前处理数的最后一位.当前处理数=前一个数除掉首位(mod w) *10 +当前这一位的数字(+a[i])
begin
now:=now mod w;
now:=now*10+a[i];
check(now);
end;
for i:=1 to top-1 do//数据不多就冒泡了……
for j:=i+1 to top do
if t[i]>t[j] then
begin
y:=t[i];
t[i]:=t[j];
t[j]:=y;
end;
for i:=1 to top do
if (t[i]<>t[i-1]) or (i=1) then //去重
writeln(t[i]);
readln
end.
pascal题目现在给你N个0~9的数字并排成一列,同时还给出了一个取数长度L.
Pascal 取数描述 Description 给出长度为N的数列{A_i},每次可以从最左边或者最右边取走一个数,第i
从阿拉伯数字0,1,…9中随意取4个数字(允许重复)排成一列,结果恰好形成一个四位数,求事件A={此数含
从0到9中随意取4个数字排成一列,结果恰好形成4位数,求事件A=(此数含6不含8)的概率)
求解数学题从阿拉伯数字0,1,…9中随意取4个数字(允许重复)排成一列,结果恰好形成一个四位数,求事件A
pascal题目:已知n,求出1至n之间(包括n),满足每位数字之和为13的所有整数,每行输出8个满足条件的数
pascal输入一个n位的正整数,输出由这n个数字组成的最大正整数.
pascal编程 输入n个整数,找出最大数所在的位置,并将它与第一个数对调
pascal题:求N个数的和,给出一个正整数N,可求出从1开始的这N个数的全部各个数位上的数字之和.
概率统计 从1,2,…,9这9个数字中任意取一个数,取后放回,而 后再取一数,试求取出的两个数字不同的概率
数字1,2,3,4任意排成一列,如果数字k恰好出现在第k个位置上,则称有一个巧合,求巧合数X的分布列.
数字1,2,3,4,5任意排成一列,如果数字k恰好在第k个位置上,则称有一个巧合求巧合数的分布列