循环练习2

# 12. 计算1到100以内能被7整除但不是偶数的数的个数。

#while语句
summation=0
num=1
while num<=100:
    if num%7==0 and num%2!=0:
        summation += 1
        num +=1
        continue
    num+=1
print(summation)
#for
summations=0
for i in range(1,101):
    if i % 7 == 0 and i % 2 != 0:
        summations += 1

print(summations)

# 13. 计算从1到100临近两个整数的合并依次输出。比如第一次输出3(1+2),第二次输出5(2+3),最后一次输出199(99+100)。

#while语句
summation=0
num=2
while num<=100:
    summation=num*2-1
    print("%d(%d+%d)," % (summation,num-1,num), end="")
    num+=1
print()
#for
summations=0
for i in range(2,101):
    summations =i*2-1
    print("%d(%d+%d)," % (summations,i-1,i), 
# 14. 给定一个整数n,判断是否是质数(质数是只能被1和它自身整除的数)

#while语句
n=eval(input("请输入一个数:"))
num=2
while num<n:
    if n%num==0:
        print("%d不是质数."%n)
        break
    num+=1
else:
    print("%d是质数."%n)
#for语句
n=eval(input("请输入一个数:"))
for i in range(2,n+1):
    if i==n:
        print("%d是质数." % n)
    elif n%i==0:
        print("%d不是质数." % n)
        break

# 15. 给定一个不大于9的数n,打印nn乘法表

#while语句
n=eval(input("请输入一个数:"))
row=1
while row<=n:
    num=1
    while num<=row:
        print("%d*%d=%d\t"%(num,row,num*row),end="")
        num+=1
    print()
    row+=1
# for语句
n=eval(input("请输入一个数:"))
for i in range(1,n+1):
    for j in range(1,i+1):
        print("%d*%d=%d\t" % (j, i, j * i), end="")
    print()

# 16. 五位数中,对称的数称为回文数,打印所有的回文数并计算个数。如:12321

#  while语句
num=10000
while num<100000:
    num1=str(num)
    num2=num1[::-1]
    if num1==num2:
        print("%d,"%num,end="")
    num+=1
print()
#  for语句
for num in range(10000,100000):
    num1 = str(num)
    num2 = num1[::-1]
    if num1 == num2:
        print("%d," % num,end="")
# 17. 给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321.
num=eval(input("请输入一个n位(n不超过10)的整数:"))
if num>10000000000:
    print("你输入的数超过10位,请重新输入")
num1=str(num)
num2=num1[::-1]
print(num2)


#while
num=eval(input("请输入一个n位(n不超过10)的整数:"))
if num>10000000000:
    print("你输入的数超过10位,请重新输入")
num1=str(num)
subscript=0#下标
num2=0
while subscript<len(num1):
    a=num1[-(subscript+1)]
    num2=(num2+int(a))*10#倒序
    subscript+=1
num2=str(num2)
print(num2[0:len(num2)-1])

#for语句
num=eval(input("请输入一个n位(n不超过10)的整数:"))
if num>10000000000:
    print("你输入的数超过10位,请重新输入")
num1=str(num)
subscript=0#下标
num2=0
for subscript in range(0,len(num1)):
    a = num1[-(subscript + 1)]
    num2 = (num2 + int(a)) * 10  # 倒序
num2=str(num2)
print(num2[0:len(num2)-1])

# 17. 给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321.
num=eval(input("请输入一个n位(n不超过10)的整数:"))
if num>10000000000:
    print("你输入的数超过10位,请重新输入")
num1=str(num)
num2=num1[::-1]
print(num2)


#while
num=eval(input("请输入一个n位(n不超过10)的整数:"))
if num>10000000000:
    print("你输入的数超过10位,请重新输入")
num1=str(num)
subscript=0#下标
num2=0
while subscript<len(num1):
    a=num1[-(subscript+1)]
    num2=(num2+int(a))*10#倒序
    subscript+=1
num2=str(num2)
print(num2[0:len(num2)-1])

#for语句
num=eval(input("请输入一个n位(n不超过10)的整数:"))
if num>10000000000:
    print("你输入的数超过10位,请重新输入")
num1=str(num)
subscript=0#下标
num2=0
for subscript in range(0,len(num1)):
    a = num1[-(subscript + 1)]
    num2 = (num2 + int(a)) * 10  # 倒序
num2=str(num2)
print(num2[0:len(num2)-1])
# 18. 输出所有的三位水仙花数,其各位数字立方和等于该数本身。

#  while语句
num=100
while num<1000:
    unit=num%10
    decade=(num//10)%10
    hundreds=num//10
    if num==(unit**3+unit**3+hundreds**3):
        print("%d,"%num,end="")
    num+=1
#  for语句
for num in range(100,1000):
    unit = num % 10
    decade = (num // 10) % 10
    hundreds = num // 10
    if num == (unit ** 3 + unit ** 3 + hundreds ** 3):
        print("%d," % num, end="")
# 19. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米?
# while语句
n=eval(input("请输入掉落的次数(n):"))
num=1
high=100
summation=0
while num<=n:
    summation+=high+high/2
    high/=2
    num+=1
print("%d次下落后,共经过%d米"%(n,summation))

# 20. 给定一个数a,求s=a+aa+aaa+aaaa+aaaaa的值,其中a是一个数字(1-9之间)。例如2+22+222+2222+22222
#while 语句
a=number=number2=eval(input("请输入一个1-9的个位数:"))
num=0
summation=0
while num<5:          #0     1
    summation+=number2#1     1+11
    number=number2*10 #10    110
    number2=number+a  #11    111
    num+=1            #1
print(summation)
#for语句
a=number=number2=eval(input("请输入一个1-9的个位数:"))
num=0
summation=0
for num in range(0,5):
    summation += number2  # 1     1+11
    number = number2 * 10  # 10    110
    number2 = number + a  # 11    111
print(summation)

# 21. 已知 abc+cba=1333, 其中的a,b,c均为一位数,编写一个程序,求出a,b,c分别代表什么数字
# while语句
a=0
while a<=9:
    b = 0
    while b <= 9:
        c = 0
        while c <= 9:
            num1=a*100+b*10+c
            num2=c*100+b*10+a
            if 1333==num1+num2:
                print("a=%d,b=%d,c=%d"%(a,b,c))
                break
            c+=1
        b+=1
    a+=1
print()
print()
# for语句
for a in range(0,10):
    for b in range(0, 10):
        for c in range(0, 10):
            num1 = a * 100 + b * 10 + c
            num2 = c * 100 + b * 10 + a
            if 1333 == num1 + num2:
                print("a=%d,b=%d,c=%d" % (a, b, c))
                break

# 22. 给定一个整数n,打印3到n以下的所有质数(质数是只能被1和它自身整除的数)

#while语句
n=eval(input("请输入一个数:"))
num=3
while num<=n:
    num2 = 2
    while num2<num:
        if num%num2==0:
           break
        num2+=1
    else:
        print("%d,"%num,end="")
    num+=1
print()
#for语句
n=eval(input("请输入一个数:"))
for num in range(3,n+1):
    for num2 in range(2,n+1):
        if num2==num:
            print("%d," % num,end="")
        elif num%num2==0:
            break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值