我有一个pl / sql编程问题:对于介于1..50之间的数字,你需要将偶数乘以5,奇数加3,然后找到结果中所有数字的总和。
所以到目前为止我有这个
DECLARE
ln_num NUMBER :=0;
ln_num1 NUMBER :=0;
ln_num2 NUMBER :=0;
BEGIN
for i in 1..50 loop
if mod(i,2) =0 then
ln_num:=i*5;
elsif mod(i,2) = 1 then
ln_num1:=i*3;
ln_num2 := ln_num+ln_num1;
dbms_output.put_line(ln_num2);
end if;
end loop;
END;
这给了我最后一个数字列表,但我需要所有数字的总和。我想知道我错过了什么,我该如何解决这个问题?
由于
答案 0 :(得分:1)
create or replace function odd_even_Numbers(num number)
return varchar2 is
value1 number;
message varchar2(30);
a number;
begin
a:=num;
loop
select abs(REMAINDER(a, 2)) into value1 from dual;
if (value1=1) then
message:= 'odd number';
dbms_output.put_line (a||'-----'||message);
a:=a+1;
else
message:='even number';
dbms_output.put_line (a||'-----'||message);
a:=a+1;
end if;
exit when a=20;
end loop;
message:='done well';
return message;
end;
答案 1 :(得分:0)
SQL> DECLARE
2 ln_num NUMBER :=0;
3 ln_num1 NUMBER :=0;
4 ln_num2 NUMBER :=0;
5
6 BEGIN
7 for i in 1..50 loop
8
9 if mod(i,2) =0 then
10 ln_num:=ln_num+i*5; -- changes
11
12 elsif mod(i,2) = 1 then
13 ln_num1:=ln_num1+i*3; -- changes
14
15
16 end if;
17 end loop;
18 ln_num2 := ln_num+ln_num1;
19 dbms_output.put_line(' the result is ' || ln_num2);
20
21 END;
22
23
24 /
the result is 5125
PL/SQL procedure successfully completed.