在Oracle中实现吸血鬼算法

来源:互联网 发布:java获取机器码 编辑:程序博客网 时间:2024/05/26 02:21


declare
  a number;
  b number;
  c number;
  d number;
begin
  for i in 1000..9999
  loop
  a:=substr(i,1,1);
  b:=substr(i,2,1);
  c:=substr(i,3,1);
  d:=substr(i,4,1);
 
      if(i=(a*10+b)*(c*10+d))     then   /* 1*/
      dbms_output.put_line(i);
      elsif (i=(a*10+b)*(d*10+c)) then   
      dbms_output.put_line(i);
      elsif (i=(b*10+a)*(c*10+d)) then
      dbms_output.put_line(i);
      elsif (i=(b*10+a)*(d*10+c)) then
      dbms_output.put_line(i);
     
      elsif (i=(a*10+c)*(b*10+d)) then  /* 2*/
      dbms_output.put_line(i);
      elsif (i=(a*10+c)*(d*10+b)) then
      dbms_output.put_line(i);
      elsif (i=(c*10+a)*(b*10+d)) then
      dbms_output.put_line(i);
      elsif (i=(c*10+a)*(d*10+b)) then
      dbms_output.put_line(i);
     
      elsif (i=(a*10+d)*(b*10+c)) then  /*3*/
      dbms_output.put_line(i);
      elsif (i=(a*10+d)*(c*10+b)) then
      dbms_output.put_line(i);
      elsif (i=(d*10+a)*(b*10+c)) then
      dbms_output.put_line(i);
      elsif (i=(d*10+a)*(c*10+b)) then
      dbms_output.put_line(i);
     
      elsif (i=(b*10+c)*(a*10+d)) then /* 4*/
      dbms_output.put_line(i);
      elsif (i=(b*10+c)*(d*10+a)) then
      dbms_output.put_line(i);
      elsif (i=(c*10+b)*(a*10+d)) then
      dbms_output.put_line(i);
      elsif (i=(c*10+b)*(d*10+a)) then
      dbms_output.put_line(i);
      end if;
      end loop;

end;

 


         

原创粉丝点击