所以我想知道如何打印偶数位数多于奇数位数的数字这是我的代码:
inVal=(input("Please enter a positive integer: "))
evencounter=0
oddcounter=0
for i in range(1,int(inVal)):
for j in range (1,len(str(i))):
if(int(str(i)[j])%2==0):
evencounter+=1
else:
oddcounter+=1
if(evencounter>oddcounter):
print(i)
发生了什么?
最佳答案
正如zeet正确指出的那样,您需要重置每个数字上的计数器(它们甚至不需要是全局的),但您有另一个问题。您需要从0开始第二个循环,而不是从1开始字符串索引从0开始。
inVal=(input("Please enter a positive integer: "))
for i in range(1,int(inVal)):
evencounter=0
oddcounter=0
for j in range (0,len(str(i))):
if(int(str(i)[j])%2==0):
evencounter+=1
else:
oddcounter+=1
if(evencounter>oddcounter):
print(i)