我在PLSQL中编写了一个代码。 我需要在哪里检查数字立方体的总和是否为数字本身。
我已经尝试过遵守算法,仍有一些错误。请帮忙。 我是PLSQL的新手。
以下是我的代码:
set serveroutput on;
Declare
I number(4);
Sum number(4):=0;
C number(15):=10;
Begin
for I in 1..999
loop
-- dbms_output.put_line(I);
Sum:=power(mod(I,C),3);
while mod(I,C)
loop
Sum:=power(mod(mod(I,C),C),3);
C:=C*10;
end loop;
if Sum=I then
dbms_output.put_line(I);
end if;
end loop;
End;
/
答案 0 :(得分:3)
sum
是plsql中的关键词,你不应该将它用作变量名。
以下是您的问题的解决方案:
SET serveroutput ON format wraped;
DECLARE
i INTEGER := 153;
j INTEGER;
summ INTEGER := 0;
BEGIN
j := i;
WHILE i > 0
LOOP
summ := summ + MOD(i,10) ** 3;
i := FLOOR (i / 10 );
END LOOP;
IF summ = j THEN
dbms_output.put_line('Sum of cubes of digits is EQUAL to the number');
ELSE
dbms_output.put_line('Sum of cubes of digits is NOT EQUAL to the number');
END IF;
END;
该解决方案适用于任何INTEGER,i,即NUMBER(38)。