free pascal语言计算题,要指导和答案啊啊!!!!!!! 寻找丑数。
寻找丑数。我们把只包含因子2、3和5的数称作丑数。例如6、8都是丑数;但14不是,因为它包含因子7。习惯上我们把1当作第一个丑数,前10个丑数为1、2、3、4、5、6、8...
寻找丑数。我们把只包含因子2、3和5的数称作丑数。例如6、8都是丑数;但14不是,因为它包含因子7。习惯上我们把1当作第一个丑数,前10个丑数为1、2、3、4、5、6、8、10、12、15.编写一个程序,打印出第n(n<=3000)个丑数。
展开
2个回答
展开全部
var
count, nr, tmp: Integer;
begin
nr := 2;
count := 1;
while count <= 3000 do
begin
Inc(nr);
tmp := nr;
while true do
if tmp mod 2 = 0 then tmp := tmp div 2
else if tmp mod 3 = 0 then tmp := tmp div 3
else if tmp mod 5 = 0 then tmp := tmp div 5
else break;
if tmp = 1 then
begin
write(nr);
inc(count);
end
else continue;
end;
end.
count, nr, tmp: Integer;
begin
nr := 2;
count := 1;
while count <= 3000 do
begin
Inc(nr);
tmp := nr;
while true do
if tmp mod 2 = 0 then tmp := tmp div 2
else if tmp mod 3 = 0 then tmp := tmp div 3
else if tmp mod 5 = 0 then tmp := tmp div 5
else break;
if tmp = 1 then
begin
write(nr);
inc(count);
end
else continue;
end;
end.
更多追问追答
追问
指导呢?
追答
指导是神马?
就是枚举所有数,直到找到需要的个数的丑数。
展开全部
var
count, nr, tmp: Integer;
begin
nr := 2;
count := 1;
while count <= 3000 do
begin
Inc(nr);
tmp := nr;
while true do
if tmp mod 2 = 0 then tmp := tmp div 2
else if tmp mod 3 = 0 then tmp := tmp div 3
else if tmp mod 5 = 0 then tmp := tmp div 5
else break;
if tmp = 1 then
begin
write(nr);
inc(count);
end
else continue;
end;
end.
count, nr, tmp: Integer;
begin
nr := 2;
count := 1;
while count <= 3000 do
begin
Inc(nr);
tmp := nr;
while true do
if tmp mod 2 = 0 then tmp := tmp div 2
else if tmp mod 3 = 0 then tmp := tmp div 3
else if tmp mod 5 = 0 then tmp := tmp div 5
else break;
if tmp = 1 then
begin
write(nr);
inc(count);
end
else continue;
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询