为啥错了,也没有报错,就是run一下没有东西出来,help,捞捞
判断逻辑可能有点问题。
在你的代码的基础上,我是用下面的思路来求解的:
1、对个位数比十位数大2的记录变量置0
2、用一个for循环遍历所有的二位数,然后在循环中分离每一个二位数的个位和十位,如果个位比十位大2,则打印这个数,并把记录变量的计数+1
3、打印记录变量的值,显示有多少个个位比十位大2的二位数。
代码修改如下:
num=0
for number in range(10,100):#遍历10到99,
a=number%10 #提取个位数
b=(int)(number/10%10) #提取十位数
# print("a="+str(a)+",b="+str(b))
if a==b+2: #如果个位数比十位数大2,则打印整数,并记录这样的数的变量+1
print(number,end=" ")
num=num+1
print("\n个位数比十位数大2的数总共有"+str(num)+"个。") #打印有多少个这样的数
你这个if语句里,a是肯定大于等于0的,所有肯定不会走到else语句。而if里没有Print()方法,所有没有输出。
你要输出a, b的值可以把 else去掉,直接接着print就可以了。
还有你这算法不是题目的解答。
根据你的思路可以试试
if a >=0 and a >= b+2:
print(a, b)
当然你最好想想更好的算法。
for i in range(10, 100):
a = str(i)[1] # 个位数
b = str(i)[0] # 十位数
if int(a)-2 == int(b):
print(i)
这样更简单