早教吧 育儿知识 作业答案 考试题库 百科 知识分享

pascal题目12、彩票摇奖(LOTTERY.PAS)问题描述为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。该彩票的规则是:(1)每张彩票上印有7个各不相同的号码,且这

题目详情
pascal题目
12、彩票摇奖(LOTTERY.PAS)
【问题描述】
为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。该彩票的规则是:
(1) 每张彩票上印有7 个各不相同的号码,且这些号码的取指范围为1~33。
(2) 每次在兑奖前都会公布一个由七个各不相同的号码构成的中奖号码。
(3) 共设置7 个奖项,特等奖和一等奖至六等奖。兑奖规则如下:
特等奖:要求彩票上7 个号码都出现在中奖号码中。
一等奖:要求彩票上有6 个号码出现在中奖号码中。
二等奖:要求彩票上有5 个号码出现在中奖号码中。
三等奖:要求彩票上有4 个号码出现在中奖号码中。
四等奖:要求彩票上有3 个号码出现在中奖号码中。
五等奖:要求彩票上有2 个号码出现在中奖号码中。
六等奖:要求彩票上有1 个号码出现在中奖号码中。
注:兑奖时并不考虑彩票上的号码和中奖号码中的各个号码出现的位置。例如,中奖号码为23 31 1 14 19 17 18,则彩票12 8 9 23 1 16 7 由于其中有两个号码(23 和1)出现在中奖号码中,所以该彩票中了五等奖。
现已知中奖号码和小明买的若干张彩票的号码,请你写一个程序帮助小明判断他买的彩票的中奖情况。
输入文件(LOTTERY.IN):
输入文件的第一行只有一个自然数 N ≤ 1000,表示小明买的彩票张数;第二行存放了7 个介于1 和33 之间的自然数,表示中奖号码;在随后的 N 行中每行都有 7 个介于 1 和33 之间的自然数,分别表示小明所买的 N 张彩票。
输出文件(LOTTERY.OUT):
依次输出小明所买的彩票的中奖情况(中奖的张数),首先输出特等奖的中奖张数,然后依次输出一等奖至六等奖的中奖张数。
输入输出样例:
【输入样例】LOTTERY.IN
2
23 31 1 14 19 17 18
12 8 9 23 1 16 7
11 7 10 21 2 9 31
【输出样例】LOTTERY.OUT
0 0 0 0 0 1 1
13、周期串(PERIODIC.PAS)
【问题描述】
如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就被称为周期为k的字符串。例如,字符串”abcabcabcabc”周期为3,因为它是由4个循环”abc”组成的。它同样是以6为周期(两个重复的”abcabc”)和以12为周期(一个循环”abcabcabcabc”)。
写一个程序,读入一个字符串,并测定它的最小周期。
【输入格式】(PERIODIC.IN):
一个最长为100的没有空格的字符串。
【输出格式】(PERIODIC.OUT):
一个整数表示输入的字符串的最小周期。
【输入样例】PERIODIC.IN
HoHoHo
【输出样例】PERIODIC.OUT
2
14、生日日期(BIRTHDAY.PAS)
问题描述:
小甜甜的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。
【输入格式】(BIRTHDAY.IN):
从文件的第一行分别读入YY,MM,DD其中1949 <= YY <= 2002,日期绝对合法。
【输出格式】(BIRTHDAY.OUT):
输出文件只有一行,即小甜甜生日第一万天以后的日期,格式为 “YY-MM-DD”。
【输入输出样例】
BIRTHDAY.INTD> BIRTHDAY.OUT
1975 7 15 2002-11-30
会一题答一题
▼优质解答
答案和解析
12、这题用计数排序较好
var
a:array[1..33,0..1000]of boolean;
b:array[0..7]of longint;
n,i,j,u,s:longint;
begin
readln(n);
for i:=0 to n do
for j:=1 to 7 do
begin
read(u);
a[u,i]:=true;
end;
for i:=1 to n do
begin
for j:=1 to 33 do
if a[j,0] then if a[j,i] then inc(s);
inc(b[s]);
s:=0;
end;
for i:=7 downto 1 do
write(b[i],' ');
end.
看了pascal题目12、彩票摇奖...的网友还看了以下: