老是运行结果不对?????????????????
--分别用三种循环语句找出所有的水仙花数(所谓的水仙花数是指一个三位数,
--它的各位数字的立方和等于它本身,如153=1*1*1+5*5*5+3*3*3 )
DECLARE
A INTEGER;
B INTEGER ;
C INTEGER ;
BEGIN
FOR I IN 100..999 LOOP
A := I/100;
B := (I-A*100)/10;
C := I-A*100-B*10;
IF A*A*A+B*B*B+C*C*C=I
THEN DBMS_OUTPUT.put_line(I);
END IF;
--DBMS_OUTPUT.put_line(A);
--DBMS_OUTPUT.put_line(B);
--DBMS_OUTPUT.put_line(C);
END LOOP;
END;
--分别用三种循环语句找出所有的水仙花数(所谓的水仙花数是指一个三位数,
--它的各位数字的立方和等于它本身,如153=1*1*1+5*5*5+3*3*3 )
DECLARE
A INTEGER;
B INTEGER ;
C INTEGER ;
BEGIN
FOR I IN 100..999 LOOP
A := I/100;
B := (I-A*100)/10;
C := I-A*100-B*10;
IF A*A*A+B*B*B+C*C*C=I
THEN DBMS_OUTPUT.put_line(I);
END IF;
--DBMS_OUTPUT.put_line(A);
--DBMS_OUTPUT.put_line(B);
--DBMS_OUTPUT.put_line(C);
END LOOP;
END;
解决方案 »
- 问sql
- Windows2000 Server 下为什么不能启动oms服务 -----在线等待
- 分区表如何根据ID尾数分区
- 用Oracle存储过程,清空所有用户表数据?
- 求条sql语句,如何更新记录前3条的值?得到结果
- 我想学ORACLE,但是......!!!!
- 不能登陆ORACLE8i DBA Stduio
- 谁能告诉我哪里可以找到关于Oracle数据类型的资料???
- 怎样将两个Schema的数据合并在一起?
- oracle8.0.5在nt4.0上的OracleTNSListenter80服务不能起来?急急急!!!!!!!!1
- oracle11g 其中一个数据库无法远程连接
- Oracle如何创建数据库?
A INTEGER;
B INTEGER ;
C INTEGER ;
BEGIN
FOR I IN 100..999
LOOP
A := I /100;
B := (I-A*100)/10;
C := I -A*100-B*10;
IF (A*A*A+B*B*B+C*C*C=I) THEN
DBMS_OUTPUT.put_line(I);
END IF;
--DBMS_OUTPUT.put_line(A);
--DBMS_OUTPUT.put_line(B);
--DBMS_OUTPUT.put_line(C);
END LOOP;
END;--结果
963
999
DECLARE
A INTEGER;
B INTEGER ;
C INTEGER ;
BEGIN
FOR I IN 100..999
LOOP
A := to_number(substr(i,1,1));
B := to_number(substr(i,2,1));
C := to_number(substr(i,3,1));
IF (A*A*A+B*B*B+C*C*C=I) THEN
DBMS_OUTPUT.put_line(I);
DBMS_OUTPUT.put_line(A);
DBMS_OUTPUT.put_line(B);
DBMS_OUTPUT.put_line(C);
END IF;
END LOOP;
END;--结果
153
1
5
3
370
3
7
0
371
3
7
1
407
4
0
7
DECLARE
A NUMBER(1);
B NUMBER(1);
C NUMBER(1);
BEGIN
FOR I IN 100..999 LOOP
A := TRUNC(I/100);
B := CASE WHEN (I-A*100)>9 THEN TRUNC((I-A*100)/10) ELSE 0 END;
C := MOD(I,10);
IF POWER(A,3)+POWER(B,3)+POWER(C,3)=I
THEN DBMS_OUTPUT.PUT_LINE(I);
END IF;
--DBMS_OUTPUT.PUT_LINE(A);
--DBMS_OUTPUT.PUT_LINE(B);
--DBMS_OUTPUT.PUT_LINE(C);
END LOOP;
END;