注:水仙花数指的是每一个十进制位的立方加起来等于他自身的三位数,水仙花数本身就是三位数- -范围100-999,可以遍历来做
之前想的是每一位的数在1-9之间选,再通过每位分别乘以100,10,1转化再与自身比较。
下面是遍历100-999的数,看是否满足水仙花数条件,输出水仙花数
注意循环嵌套时一些变量初始值的改变,如这里si,flag1【也许这里不应该称之为变量,暂时这样说吧】
做的时候这两个值发生了改变导致不好找错误,然后发现两次循环(包含一个水仙花数)可以正常输出,三次及以上不行找到了这错误。
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">data segment
flag1 db 0
flag2 db 0
outt db 'shuixianhua: ','$'
array0 dw 3 dup(0)<span style="color:#33CC00;">;保存三位数的每一位的三次方</span>
data ends
stack segment
stack ends
code segment
assume cs:code,ds:data,ss:stack
begin: mov ax,data
mov ds,ax
lea dx,outt
mov ah,9
int 21h
mov cx,1000
x1: