烦恼:PASCAL
发布网友
发布时间:2022-09-03 20:48
我来回答
共4个回答
热心网友
时间:2024-10-14 04:44
1、 约瑟夫(joseph)
n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。
现在有一圈人,k个好人站在一起,k个坏人站在一起。从第一个好人开始数数。
你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死。
输入
一个k,0<k<14
输出
一个m
样例:
输入
3
输出
5
另一个样例:
输入
4
输出
30
2、子数整数
对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:
sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数20207可以拆分成
sub1=202
sub2=020(=20)
sub3=207
现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。
输入
输入由键盘输入,输入仅一行,为正整数K(0<K<1000)。
输出
输出到文件,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。
样例
输入
15
输出
22555
25555
28555
30000
3、到天宫做客
有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是4000年。天上一天也是24小时,每小时60分,每分60秒。
输入
输入文件的第一行是一个非负整数 N,表示4000年中必须呆在人间的天数,以下共N行,每行两个用空格隔开的正整数,即日期(月,日),输入文件保证无错误,日期无重复。
输出
输出文件仅有一行包含一个非负整数,即在天上的时间(四舍五入精确到秒)。
样例
输入
2
3 8
12 2
输出
63266
约瑟夫:
program joseph;
var
n,i,ans:longint;
pc:array [1..100] of boolean;
procere init;
begin
assign(input,'joseph.in');
reset(input);
readln(input,n);
close(input);
end;
procere print(x:longint);
begin
assign(output,'joseph.out');
rewrite(output);
writeln(output,x);
close(output);
halt;
end;
procere test(x:longint);
var
i,jl,js:longint;
pd:boolean;
begin
fillchar(pc,sizeof(pc),true);
jl:=0;
pd:=true;
for i:=1 to n do begin
js:=0;
repeat
inc(jl);
if jl>2*n then jl:=jl mod(2*n);
if jl=0 then jl:=2*n;
if pc[jl]=true then inc(js);
until js=x;
pc[jl]:=false;
if jl<=n then begin
pd:=false;
break;
end;
end;
if pd=true then print(x);
end;
begin
init;
i:=n;
repeat
inc(i);
test(i);
until i>maxlongint;
end.
Program heaven;
const
day:array[1..12]of shortint=(31,29,31,30,31,30,31,31,30,31,30,31);
var
n,i,j,x,max,t:longint;
m,d:array[1..1000]of integer;
begin
assign(input,'heaven.in');
assign(output,'heaven.out');
reset(input);
rewrite(output);
readln(n);
for i:=1 to n do
readln(m[i],d[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if (m[i]>m[j])or(m[i]=m[j])and(d[i]>d[j]) then begin
t:=m[i];
m[i]:=m[j];
m[j]:=t;
t:=d[i];
d[i]:=d[j];
d[j]:=t;
end;
j:=1;
max:=0;
x:=0;
for i:=1 to 12 do
if i<>m[j] then x:=x+day[i]
else begin
repeat
x:=x+d[j]-1;
if x>max then max:=x;
inc(j);;
x:=0;
until i<>m[j];
x:=x+31-d[j-1];
end;
writeln(max/366*24*60*60:0:0);
close(input);
close(output);
end.
【程序2】
const day:array[1..12] of integer = (31,29,31,30,31,30,31,31,30,31,30,31);
var i,n,j:byte;
k:array[0..254] of word;
s:real;
a:array[0..254,1..2] of integer;
begin
read(n);
for i:=1 to n do
begin
read(a[i,1]);
read(a[i,2]);
end;
a[0,1]:=1;a[0,2]:=0;
a[n+1,1]:=12;a[n+1,2]:=32;
for i:=0 to n do
for j:=a[i,1] to a[i+1,1] do
begin
if a[i,1]=a[i+1,1] then k[i]:=a[i+1,2]-a[i,2]
else if j=a[i,1] then k[i]:=day[a[i,1]]-a[i,2]-1
else if j=a[i+1,1] then k[i]:=k[i]+a[i+1,2]
else k[i]:=k[i]+day[j];
end;
for i:=1 to n-1 do
if k[i]<k[i+1] then s:=k[i-1] else s:=k[i];
s:=s/366*24*60*60;
writeln(s:0:0);
end.
热心网友
时间:2024-10-14 04:45
一、 选择一个正确的答案代码,填入每题括号内。
1. 信息技术的英语缩写是
A. OS B . CAD C. IT D. CAI
2. ASCII 码 主要作用是
A. 便于信息交换 B. 便于信息存贮藏 C. 便于管理 D. 便于输出
3. 表达式10DIV 4+15MOD2的值是
A. 1 B. 9 C. 3 D.3.5
4. 在计算机领域中,媒体是指
A. 计算机的输入输出信息 B. 各种信息的编码
C. 表示和传播信息的载体 D. 计算机屏幕显示的信息
5. 计算机网络最主要的优点是
A. 运算速度快 B. 共享资源 C. 精度高 D. 存储容量大
6. 现在的计算机通常是将处理程序放在连续的内存地址只. CPU在执行这个处理程序时,是使用一个叫 的寄存器来指示程序的执行顺序.
A. 累加寄存器 B. 指令寄存器
C. 内存地址寄存器 D. 指令地址寄存器
7. TCP/IP 协议是指
A. 文件传输协议/远程登录协议
B. 邮件传输协议/远程登录协议
C. 传输控制协议/因特网互联协议
D. 文件传输协议/邮件传输协议
8. PASCAL 编译程序的功能是
A. 把PASCAL源程序转换成可运行的EXE文件
B. 生成和修改一个PASCAL 源程序
C. 实现PASCAL 的目标码程序到可运行的EXE问的转换
D. 实现PASCAL 的源程序到等价的目标码程序的转换
9. 根据<计算机软件保护条例>, 中国公民开发的软件享有著作权的是
A. 不论何人,何地及发表与否的软件
B. 只有公开发表的软件
C. 只有单位发表的软件
D. 只有个人在国内开发表的软件
10. 与二进制小数0.1等值的十六进制小数为
A.0.8 B. 0.4 C. 0.2 D. 0.1
11. 下面是4个不同的进制的数,最大的一个是
A. (1A5)16 B. (432)10 C. (543)8 D. (101001000)2
12. 为了提高软件测试的效率,应该
A. 随机地选取测试数据
B. 取一切可能的输入数据作为测试数据
C. 在完成编码后制定软的测试计划
D. 选择发现错误的可能性大的测试数据
13. 结构化程序设计的一种基本方法是
A. 归纳法 B. 逐步求精法 C. 递归法 D. 筛选法
14.调用下列函数返回的值是
function digit (n,k:integer):integer;
begin
digit:=0;
while k>0 do
begin
digit := n mod 10
n:= n div 10;
k:= k-1
end;
end;
A. n 的从右边开始的第k位数字值
B. n的从左边开始的第k位数字值
C. n 除以 10个K次芳 的商
D. n的位数
15. 一个栈的入栈列是 a, b, c, d, e则不可能的出栈序列是
A. e d c b a B. d c e a b C. d e c b a D. a b c d e
16. 电子邮件地址中的用户名与网络服务器主机名之间连接的符号为
A. # B. 下划线 C. @ D. 空格
17. 一棵完全二叉树的结点总数为18 其叶结点数为
A. 7个 B. 8个 C. 9个 D. 10个
18. 已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac 则它的前序遍历序列是
A. a c b e d B. d e c a b C. d e a b c D. c e d b a
19. 对按关键字排序的线性表进行二分查找,该线行表适合的存储结构为
A. 顺序存储 B. 链接存储 C. 索引存储 D. 散列存储
20. 操作系统是对 进行管理的系统软件
A. 软件 B. 硬件 C. 计算机资源 D. 应用程序
二, 问题求解
第1题, 用1个或多个互不相同的正整数之和表示1~511之间的所有整数
① 至少要多少个不同的正整数
② 这些正整数是
第2题, 在有m行n列格子的棋盘内,一枚棋子从棋盘的左上角格子沿上,下,左,右方向行走,最后走到棋盘的右下角格子.该棋子走过的格子数为奇数的充分必要条件是
三,写出程序的运行结果
第1题, program myt1;
var a,b:integer;
procere pl(x:integer; var y:integer);
begin
x:=x+y
y:=x+y
end;
begin
a:=a; b:=8;
pl(a,b); writeln(a:3,b:3)
pl(b-a,b); writeln (a:3,b:3)
readln
end.
输出:
第2题, program myt2;
var I,j:integer;
a:array[1…3,1…3] of integer;
begin
for I:= 1 to 3 do
begin
for j:=1 to 3 do
begin
if I=3 then a[I,j]:=a[I-1,j]]+1
else a[I,j]:=j;
write (a[I,j]);
end;
writeln
end;
redln
end.
输出:
第3题, program myt3;
const n=10;
function fn(n:integer):integer;
begin
if n<1 then fn:=0
else if n=1 then fn :=1
else fn:=fn(n-1)+n;
end;
begin
writeln(fn(n));
readln
end.
输出:
第4题, program myt4;
const n=7;
var p:array [0…n] of integer;
b:array[0…n] of integer;
I,s,t:integer;
Begin
For I:=9 to n do
Begin
P[I]:=I+1;
B[I]:=1;
End;
I:=0;t:=0;s:=0;
While t<=n do
Begin
S:=s+b[I];
If odd (s) and (b[I]=1) then
Begin
Write (p[I]:3);
T:=t+1;
B[I]:=0;
End;
I:=(I+1) mod (n+1);
End;
Writeln;
Readln
End.
输出:
四, 完善程序
第1题 ,求元素之和最大的子方阵:在m*n(m,n<=20)的正整数数字方阵中,找出一个p*q的子阵(1<=p<=m,1<=p<=n)使其元素之和最大。例如,下面5*4的数字阵中,元素之和最大的一个2*3子阵。
5*4数字阵 元素之和最大的2*3子阵为:
3 8 4 22
11 1 7 9
5 21 6 2
0 3 8 9
2 7 12 3
5 21 6
10 3 8
Program myt5;
Var a:array[1…20,1…20] of integer;
M,np,q,I,j,max,p1,q1,s,i1,j1:integer;
Begin
For I:=1 to 20 do
For j:=1 to 20 do
A[I,j]:=0
Readln(m,n);
For I:=1 to m do
Begin
For j:=1 to n do read(a[I,j];
Readln
End;
Readln(p,q);
Max:=0;
For I:=1 to m-p+1 do
For j:=1 to n-q+1 do
Begin
① ;
for i1:= I to p+I+1 do
for j1:=j to q+j-1 do
② ;
if s>max then begin
③ ;
p1:=I;
q1:=j
end;
end;
for I:=p1 to ④ do
begin
for j:=q1 to ⑤ do
write (a[I,j]:3;
writeln
end;
readln
end.
第2题 菲波拉契数列为1,1,2,3,5,8,13,21,…,其元素产生的规则是前两个数为1 ,第三个数开始每个数等于它前面两个数之和。已知任意一个正整数可以表示为若干个互不相同的菲波拉契数之和。
例如: 36=21+13+2
下面的程序是由键盘输入一个正整数n的互不相同的菲拨拉契数
算法说明:(1)寻找小于等于n的最大菲拨拉契数a,并以a作为组成n的一个数;
(2)若n不等于a,则以n-a作为n的新值,重复步骤(1)。若a=n,则结束
program myt6;
var n:integer;
first:Boolean;
function find(n:integer):integer;
var a,b,c:integer;
begin
a:=1;b:=1;
repert
c:= ① ;
a:=b; b:=c;
until b>=n;
if b=n then find:= ②
else find:= ③
end;
procere p(n:integer);
var a:integer;
begin
a:=find(n);
if first then begin
write(a:4);
first := false
end
else write(‘+’,a:4);
if a<n then p ④ ;
end;
begin
readln(n);
first:= true;
write(n:5,’=’);
p(n);
writeln;
readln
end.
good
very good1、 约瑟夫(joseph)
n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。
现在有一圈人,k个好人站在一起,k个坏人站在一起。从第一个好人开始数数。
你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死。
输入
一个k,0<k<14
输出
一个m
样例:
输入
3
输出
5
另一个样例:
输入
4
输出
30
2、子数整数
对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:
sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数20207可以拆分成
sub1=202
sub2=020(=20)
sub3=207
现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。
输入
输入由键盘输入,输入仅一行,为正整数K(0<K<1000)。
输出
输出到文件,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。
样例
输入
15
输出
22555
25555
28555
30000
3、到天宫做客
有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是4000年。天上一天也是24小时,每小时60分,每分60秒。
输入
输入文件的第一行是一个非负整数 N,表示4000年中必须呆在人间的天数,以下共N行,每行两个用空格隔开的正整数,即日期(月,日),输入文件保证无错误,日期无重复。
输出
输出文件仅有一行包含一个非负整数,即在天上的时间(四舍五入精确到秒)。
样例
输入
2
3 8
12 2
输出
63266
约瑟夫:
program joseph;
var
n,i,ans:longint;
pc:array [1..100] of boolean;
procere init;
begin
assign(input,'joseph.in');
reset(input);
readln(input,n);
close(input);
end;
procere print(x:longint);
begin
assign(output,'joseph.out');
rewrite(output);
writeln(output,x);
close(output);
halt;
end;
procere test(x:longint);
var
i,jl,js:longint;
pd:boolean;
begin
fillchar(pc,sizeof(pc),true);
jl:=0;
pd:=true;
for i:=1 to n do begin
js:=0;
repeat
inc(jl);
if jl>2*n then jl:=jl mod(2*n);
if jl=0 then jl:=2*n;
if pc[jl]=true then inc(js);
until js=x;
pc[jl]:=false;
if jl<=n then begin
pd:=false;
break;
end;
end;
if pd=true then print(x);
end;
begin
init;
i:=n;
repeat
inc(i);
test(i);
until i>maxlongint;
end.
Program heaven;
const
day:array[1..12]of shortint=(31,29,31,30,31,30,31,31,30,31,30,31);
var
n,i,j,x,max,t:longint;
m,d:array[1..1000]of integer;
begin
assign(input,'heaven.in');
assign(output,'heaven.out');
reset(input);
rewrite(output);
readln(n);
for i:=1 to n do
readln(m[i],d[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if (m[i]>m[j])or(m[i]=m[j])and(d[i]>d[j]) then begin
t:=m[i];
m[i]:=m[j];
m[j]:=t;
t:=d[i];
d[i]:=d[j];
d[j]:=t;
end;
j:=1;
max:=0;
x:=0;
for i:=1 to 12 do
if i<>m[j] then x:=x+day[i]
else begin
repeat
x:=x+d[j]-1;
if x>max then max:=x;
inc(j);;
x:=0;
until i<>m[j];
x:=x+31-d[j-1];
end;
writeln(max/366*24*60*60:0:0);
close(input);
close(output);
end.
【程序2】
const day:array[1..12] of integer = (31,29,31,30,31,30,31,31,30,31,30,31);
var i,n,j:byte;
k:array[0..254] of word;
s:real;
a:array[0..254,1..2] of integer;
begin
read(n);
for i:=1 to n do
begin
read(a[i,1]);
read(a[i,2]);
end;
a[0,1]:=1;a[0,2]:=0;
a[n+1,1]:=12;a[n+1,2]:=32;
for i:=0 to n do
for j:=a[i,1] to a[i+1,1] do
begin
if a[i,1]=a[i+1,1] then k[i]:=a[i+1,2]-a[i,2]
else if j=a[i,1] then k[i]:=day[a[i,1]]-a[i,2]-1
else if j=a[i+1,1] then k[i]:=k[i]+a[i+1,2]
else k[i]:=k[i]+day[j];
end;
for i:=1 to n-1 do
if k[i]<k[i+1] then s:=k[i-1] else s:=k[i];
s:=s/366*24*60*60;
writeln(s:0:0);
end.
very very good
热心网友
时间:2024-10-14 04:45
模拟训练试卷 五
一、 选择一个正确的答案代码,填入每题括号内。
1. 信息技术的英语缩写是
A. OS B . CAD C. IT D. CAI
2. ASCII 码 主要作用是
A. 便于信息交换 B. 便于信息存贮藏 C. 便于管理 D. 便于输出
3. 表达式10DIV 4+15MOD2的值是
A. 1 B. 9 C. 3 D.3.5
4. 在计算机领域中,媒体是指
A. 计算机的输入输出信息 B. 各种信息的编码
C. 表示和传播信息的载体 D. 计算机屏幕显示的信息
5. 计算机网络最主要的优点是
A. 运算速度快 B. 共享资源 C. 精度高 D. 存储容量大
6. 现在的计算机通常是将处理程序放在连续的内存地址只. CPU在执行这个处理程序时,是使用一个叫 的寄存器来指示程序的执行顺序.
A. 累加寄存器 B. 指令寄存器
C. 内存地址寄存器 D. 指令地址寄存器
7. TCP/IP 协议是指
A. 文件传输协议/远程登录协议
B. 邮件传输协议/远程登录协议
C. 传输控制协议/因特网互联协议
D. 文件传输协议/邮件传输协议
8. PASCAL 编译程序的功能是
A. 把PASCAL源程序转换成可运行的EXE文件
B. 生成和修改一个PASCAL 源程序
C. 实现PASCAL 的目标码程序到可运行的EXE问的转换
D. 实现PASCAL 的源程序到等价的目标码程序的转换
9. 根据<计算机软件保护条例>, 中国公民开发的软件享有著作权的是
A. 不论何人,何地及发表与否的软件
B. 只有公开发表的软件
C. 只有单位发表的软件
D. 只有个人在国内开发表的软件
10. 与二进制小数0.1等值的十六进制小数为
A.0.8 B. 0.4 C. 0.2 D. 0.1
11. 下面是4个不同的进制的数,最大的一个是
A. (1A5)16 B. (432)10 C. (543)8 D. (101001000)2
12. 为了提高软件测试的效率,应该
A. 随机地选取测试数据
B. 取一切可能的输入数据作为测试数据
C. 在完成编码后制定软的测试计划
D. 选择发现错误的可能性大的测试数据
13. 结构化程序设计的一种基本方法是
A. 归纳法 B. 逐步求精法 C. 递归法 D. 筛选法
14.调用下列函数返回的值是
function digit (n,k:integer):integer;
begin
digit:=0;
while k>0 do
begin
digit := n mod 10
n:= n div 10;
k:= k-1
end;
end;
A. n 的从右边开始的第k位数字值
B. n的从左边开始的第k位数字值
C. n 除以 10个K次芳 的商
D. n的位数
15. 一个栈的入栈列是 a, b, c, d, e则不可能的出栈序列是
A. e d c b a B. d c e a b C. d e c b a D. a b c d e
16. 电子邮件地址中的用户名与网络服务器主机名之间连接的符号为
A. # B. 下划线 C. @ D. 空格
17. 一棵完全二叉树的结点总数为18 其叶结点数为
A. 7个 B. 8个 C. 9个 D. 10个
18. 已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac 则它的前序遍历序列是
A. a c b e d B. d e c a b C. d e a b c D. c e d b a
19. 对按关键字排序的线性表进行二分查找,该线行表适合的存储结构为
A. 顺序存储 B. 链接存储 C. 索引存储 D. 散列存储
20. 操作系统是对 进行管理的系统软件
A. 软件 B. 硬件 C. 计算机资源 D. 应用程序
二, 问题求解
第1题, 用1个或多个互不相同的正整数之和表示1~511之间的所有整数
① 至少要多少个不同的正整数
② 这些正整数是
第2题, 在有m行n列格子的棋盘内,一枚棋子从棋盘的左上角格子沿上,下,左,右方向行走,最后走到棋盘的右下角格子.该棋子走过的格子数为奇数的充分必要条件是
三,写出程序的运行结果
第1题, program myt1;
var a,b:integer;
procere pl(x:integer; var y:integer);
begin
x:=x+y
y:=x+y
end;
begin
a:=a; b:=8;
pl(a,b); writeln(a:3,b:3)
pl(b-a,b); writeln (a:3,b:3)
readln
end.
输出:
第2题, program myt2;
var I,j:integer;
a:array[1…3,1…3] of integer;
begin
for I:= 1 to 3 do
begin
for j:=1 to 3 do
begin
if I=3 then a[I,j]:=a[I-1,j]]+1
else a[I,j]:=j;
write (a[I,j]);
end;
writeln
end;
redln
end.
输出:
第3题, program myt3;
const n=10;
function fn(n:integer):integer;
begin
if n<1 then fn:=0
else if n=1 then fn :=1
else fn:=fn(n-1)+n;
end;
begin
writeln(fn(n));
readln
end.
输出:
第4题, program myt4;
const n=7;
var p:array [0…n] of integer;
b:array[0…n] of integer;
I,s,t:integer;
Begin
For I:=9 to n do
Begin
P[I]:=I+1;
B[I]:=1;
End;
I:=0;t:=0;s:=0;
While t<=n do
Begin
S:=s+b[I];
If odd (s) and (b[I]=1) then
Begin
Write (p[I]:3);
T:=t+1;
B[I]:=0;
End;
I:=(I+1) mod (n+1);
End;
Writeln;
Readln
End.
输出:
四, 完善程序
第1题 ,求元素之和最大的子方阵:在m*n(m,n<=20)的正整数数字方阵中,找出一个p*q的子阵(1<=p<=m,1<=p<=n)使其元素之和最大。例如,下面5*4的数字阵中,元素之和最大的一个2*3子阵。
5*4数字阵 元素之和最大的2*3子阵为:
3 8 4 22
11 1 7 9
5 21 6 2
0 3 8 9
2 7 12 3
5 21 6
10 3 8
Program myt5;
Var a:array[1…20,1…20] of integer;
M,np,q,I,j,max,p1,q1,s,i1,j1:integer;
Begin
For I:=1 to 20 do
For j:=1 to 20 do
A[I,j]:=0
Readln(m,n);
For I:=1 to m do
Begin
For j:=1 to n do read(a[I,j];
Readln
End;
Readln(p,q);
Max:=0;
For I:=1 to m-p+1 do
For j:=1 to n-q+1 do
Begin
① ;
for i1:= I to p+I+1 do
for j1:=j to q+j-1 do
② ;
if s>max then begin
③ ;
p1:=I;
q1:=j
end;
end;
for I:=p1 to ④ do
begin
for j:=q1 to ⑤ do
write (a[I,j]:3;
writeln
end;
readln
end.
第2题 菲波拉契数列为1,1,2,3,5,8,13,21,…,其元素产生的规则是前两个数为1 ,第三个数开始每个数等于它前面两个数之和。已知任意一个正整数可以表示为若干个互不相同的菲波拉契数之和。
例如: 36=21+13+2
下面的程序是由键盘输入一个正整数n的互不相同的菲拨拉契数
算法说明:(1)寻找小于等于n的最大菲拨拉契数a,并以a作为组成n的一个数;
(2)若n不等于a,则以n-a作为n的新值,重复步骤(1)。若a=n,则结束
program myt6;
var n:integer;
first:Boolean;
function find(n:integer):integer;
var a,b,c:integer;
begin
a:=1;b:=1;
repert
c:= ① ;
a:=b; b:=c;
until b>=n;
if b=n then find:= ②
else find:= ③
end;
procere p(n:integer);
var a:integer;
begin
a:=find(n);
if first then begin
write(a:4);
first := false
end
else write(‘+’,a:4);
if a<n then p ④ ;
end;
begin
readln(n);
first:= true;
write(n:5,’=’);
p(n);
writeln;
readln
end.
热心网友
时间:2024-10-14 04:46
真的假的...pascal不是只有noip吗?
lz可以去看看今年普及组的noip,应该会有帮助