永发信息网

请教一道pascal编程的题目《美丽数字》

答案:1  悬赏:30  手机版
解决时间 2021-06-03 03:55
  • 提问者网友:动次大次蹦擦擦
  • 2021-06-02 11:07

beautiful Number

(zju2829)

麦克有两个美丽数字3和5,但他很贪心,他想让能被3或者5整除的正整数都是他的美丽数字,现要求输入n (1 <=n <= 100000),相应的输出第n个美丽数字。(要求处理至文件尾,即要用while not eof(input) )

Sample Input

1
2
3
4

Sample Output

3
5
6
9

(提示:可以先把前100000个美丽数字求出,存放于数组中,然后根据n 值直接输出)

最佳答案
  • 五星知识达人网友:轮獄道
  • 2021-06-02 11:13

题目很简单


附上前20个的运行截图



程序


var
num: array[1..10000] of Int64;
i, cout: Cardinal;
Input, Output: TextFile;//可以不要这句
begin
cout := 1;//记录数组的维
num[1] := 3;
repeat
Inc(cout); //递加数组的维
for i := num[cout - 1] + 1 to num[cout - 1] + 8 do//在上一次的基础上递加循环
if (i mod 3 = 0) or (i mod 5 = 0) then //如果被3或者5整数就记录
begin
num[cout] := i;
Break;
end;
until (cout > 10000);


AssignFile(Input, 'input.txt'); //关联输入文件
Reset(Input); //只读方式打开
AssignFile(Output, '.\output.txt'); //关联输出文件
Rewrite(Output); //以创建并写的方式打开
while not Eof(Input) do //如果没有到文件尾
begin
Readln(input, cout); //读入文件数字
Writeln(Output, num[cout]);//输出对应的完美数到输出文件
end;
CloseFile(Input); //文件关闭
CloseFile(Output); //文件关闭
Readln;
end.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯