回 帖 发 新 帖 刷新版面

主题:[讨论]请教一道PASCAL的题目!+++++30

题目是:11、323、74947、63144136这样的数叫回文数,其中11是个更特殊的回文数,它的平方121、立方1331也是回文数,这是最小的一个具有这种性质的回文数。请编程求出三次方小于999999999的具有上述性质的所有回文数。[em1]

回复列表 (共4个回复)

沙发

把数字分开,分别入栈和队列,然后弹出元素进行比较,看是否满足条件。

板凳

//初学 pascal,可能有误
{
题目是:
11、323、74947、63144136这样的数叫回文数,
其中11是个更特殊的回文数,它的平方121、
立方1331也是回文数,这是最小的一个具有这
种性质的回文数。请编程求出三次方小于
999999999的具有上述性质的所有回文数
}

program one;
{$APPTYPE CONSOLE}


function IsPalindromeNumber(n :Integer) : Boolean;
var
    s :Array[1..10] of Char;
    i, j :Integer;
begin
    i := 1;
    while n <> 0 do
    begin
        s[i] := Char(n mod 10);
        n := n div 10;
        Inc(i);
    end;

    j := 1;
    Dec(i);
    IsPalindromeNumber := True;
    while i > j do
    begin
        if s[i] <> s[j] then
        begin
            IsPalindromeNumber := False;
            j := i;
        end;

        Dec(i);
        Inc(j);
    end;
    
end;


var
    i, n :integer;
begin
    i := 11;
    while i <> 0 do
    begin
        n := i;
        if IsPalindromeNumber(n) then
        begin
            n := n * i;
            if IsPalindromeNumber(n) then
            begin
                n := n * i;
                if n < 999999999 then
                begin
                    if IsPalindromeNumber(n) then Writeln(i);
                end
                else begin
                    i := -1; //创造条件退出循环
                end;
            end;
        end;
        Inc(i);
    end;
end.

3 楼

首先入栈出栈,再选择合适的数组进行选择

4 楼


先入栈出栈,再选择合适的数组进行选择
要用高精度或是数组

我来回复

您尚未登录,请登录后再回复。点此登录或注册