#include<stdio.h>
main()
{
int k,i,m
for(k=0,i=5i<=1000i+=5) //只有乘以含有因子5的数,才会使结果末尾的0增加
{
m=i //复制i的副本
while(m%5==0) //如果m含有个或多个因子5
{
k++ m=m/5 //每除去一个因子5,计数就加1(5*2就等于10,就使末尾的0的个数加1,而因子2是非常多的)
}
}
printf("%d",k) //输出n!中总共含有几个因子5(也就是n!末尾有几个0)
}
MOV CH, 4 //用来计数,循环四次AGAIN:MOV CL, 4
ROL BX, CL//BX循环左移四位
MOV AL, BL
AND AL, 0FH
ADD AL, 30H
CMP AL, 3AH
JL NEXT
ADD AL, 07H
NEXT: MOV DL, AL
MOV AH, 2
INT 21H //中断,输出DL
DEC CH
JNZ AGAIN
将BX(b1b2b3b4)四位四位的读出,先读最高四位(b1),判断其与A的大小,如果大于A,显示输出b1+30H,如果小于A,显示输出b1+37H,然后在依次循环读b2,b3,b4。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)