//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,k,sum,count_n=1
for(i=1i<10i++)
for(j=i+1j<10j++)
for(k=j+1k<10k++)
{
sum=i+j+k
if(sum%2==0 &&i!=j &&i!=k &&j!=k)
{
printf("%d+%d+%d=%-2d\t",i,j,k,sum)
if(count_n%3==0)
{
printf("\n")
}
count_n++
}
}
printf("\nCount number is:%d\n",count_n)
system("pause")
return 0
}
//---------------------------------------------------------------------------
code segmentassume cs:code
start:
mov ax,0ffffh 测试用的,你可以修改为任何有效的值
mov cl,16 ax是一个字,有16位二进制
mov dl,0 用于累加ax中1的个数
a:
rol ax,1 循环左移1称,16次循环后复原
jnc next 该位是0,则CF=0,这里就是测试CF的值,为0则跳转不累加
inc dl CF=1时,dl+1
next:
loop a 循环结构
add dl,30h 将dl的值转为ASCII码
cmp dl,'9' 大于9则是A-F或者10
jbe print 小于或者等于0则不必再转化ASCII码
add dl,7 如果是A-F则转化
cmp dl,'F' 这步关键,如果AX的值是0FFFFH,则dl=16=10H,没有这步将会输出G
ja print_10 AX=0FFFFH则跳转进行特殊处理
print:
mov ah,02h
int 21h
print_10:
mov dl,31h 特殊情况只有一种,即dl=10H,故只要两次分别输出字符1和0即可
mov ah,02h
int 21h
mov dl,30h
int 21h
mov ah,4ch
int 21h
code ends
end start
#include <stdio.h>main()
{
int x,y
scanf("%d\n",&x)
if(x<1) y=x
else if(x<10) y=2*x+1
else y=5*x-17
printf("%d\n",y)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)