python 求循环案例的多种例子总结(一)

目录

1、编程求一个四位自然数ABCD,它乘以A后变成DCBA

2、要求:打印输出标准水仙花数,输出这些水仙花数

3、要求:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

4、要求:一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.

5、将10进制数据转换为二进制,并且统计其中的0和1的数量


1、编程求一个四位自然数ABCD,它乘以A后变成DCBA

for i in range(1000, 10000):
    d = i % 10     			#个位
    c = i % 100 // 10		#十位
    b = i % 1000 // 100		#百位
    a = i // 1000			#千位

    temp = d * 1000 + c * 100 + b * 10 + a
    if i * a ==  temp:
        print(i)

2、要求:打印输出标准水仙花数,输出这些水仙花数

for i in range(100,1000):
    a = i // 100            #百位
    b = i % 100 // 10       #十位
    c = i % 10              #个位
 
    if i == a**3 +b**3+c**3 :
        print(i)

3、要求:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

#第一种方法
num = int(input("请输入一个大于9的整数:"))
while num <= 9 :
    num = int(input("请输入一个大于9的整数!!!!!:"))
num1 = str(num)
count = 0
for i in num1:
    count +=int(i)
if (num-count) % 9 ==0:
    print("恭喜你,校验通过")
else:
    print("对不起,校验失败")
 
 
# 第二种方法
num = int(input("请输入一个大于9的整数:"))
while num <= 9 :
    num = int(input("请输入一个大于9的整数!!!!!:"))
num1 =num
count = 0
while num !=0 :                    
    count += num % 10
    num //=10
 
if (num1-count) % 9 ==0:            #此处为num1的原因是,num在除以后已经变成了个位数子,所以验证一定失败
    print("恭喜你,校验通过")
else:
    print("对不起,校验失败")

4、要求:一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.

for i in range(10000,100000):
    a = i % 10              #个位
    b = i % 100 //10        #十位
    c = i % 1000 // 100     #百位
    d = i % 10000 //1000    #千位
    e = i //10000           #万位
    B = a + b *10 + c*100 + d*1000 + e*10000 + 7*100000 
    A = 7 + a*10 + b *100 + c*1000 + d*10000 + e*100000
    if A * 5 == B:
        print(i)

5、将10进制数据转换为二进制,并且统计其中的0和1的数量

 
num = int(input("请输入一个十进制数:"))
 
def bina(num):
    ls = []
    back_num = num
    while num != 0:
        n = num % 2
        num //= 2
        ls.append(n)
    ls.reverse()
    print(f"{back_num}的二进制数为:")
    for i in ls:
        print(i,end="")
    print()
    a = ls.count(0)
    b = ls.count(1)
    print(f"0的个数为:{a},1的个数为:{b}")
 
bina(num)

6、求一个数字的各个位置之和

num = int(input("请输入一个十进制整数:"))
num1 = str(num)
count = 0
for i in num1:
    count +=int(i)
print(count)
 
# 第二种方法
num = int(input("请输入一个十进制数:"))
num1 =num
count = 0
while num !=0 :                    
    count += num % 10
    num //=10
 
print(count)           #此处为num1的原因是,num在除以后已经变成了个位数子,所以验证一定失败

运行结果:

 

你可能感兴趣的:(python)