(已解决)求解pyhton问题
本帖最后由 亲爱的魔月 于 2022-6-9 19:01 编辑输入一个两位数n,计算10~n之间所有个位数小于十位数的两位数的和
怎么想也做不出来了
问题已经解决了 感谢老哥的回答{:1_893:} n = int(input("请输入一个数字:"))
res = 0
for i in range(10, n):
a = i % 10
b = i / 10
if a < b:
res += i
print(res)
楼上正解 代码:
```python
if __name__ == '__main__':
while True:
num = input('二位数')
if len(num) == 2:
try:
int(num)
break
except:
pass
print('请输入正确的二位数')
print(f'你输入的二位数是{num}')
new_num = []
for i in range(10, int(num) + 1):
if int(str(i)) < int(str(i)):
new_num.append(i)
print(f'从10到{num}的所有个位数小于十位数的数有:', new_num)
result = 0
for i in new_num:
result += i
print('所有数之和:', result)
```
结果:
> 二位数99
你输入的二位数是99
从10到99的所有个位数小于十位数的数有:
所有数之和: 2970 sifan785622020 发表于 2022-6-9 18:28
n = int(input("请输入一个数字:"))
res = 0
for i in range(10, n):
res += i您好 好像不对 因为我没学过
然后我输入了12结果应该是3 但是输出了21 本帖最后由 YeLTYZ 于 2022-6-9 18:53 编辑
sifan785622020 发表于 2022-6-9 18:28
n = int(input("请输入一个数字:"))
res = 0
for i in range(10, n):
n=int(input())
s=0
for i in range(10,n+1):
if (i%10) < (i//10):
s+=i
else:
s+=0
print(s)
range后面的范围是左闭右开,要把n换成n+1 本帖最后由 li270207756 于 2022-6-9 18:57 编辑
# coding = utf-8
def test1(n):
'''
输入一个两位数n,计算10~n之间所有个位数小于十位数的两位数的和
分析:由于所求两位数的和,所以n小于等于100即可,大于100的数也等效99
:param n:
:return:add_list
'''
if n > 100:
n = 99
if n < 10:
return None
add_list = []# 存储计算结果,用于存储个位数小于十位数的值。
for i in range(10, n+1):
ten_num, one_num = divmod(i, 10)# 内置函数,第一个为商,第二个为余数
if one_num < ten_num:
num = ten_num * 10 + one_num
add_list.append(num)
return add_list
if __name__ == '__main__':
test1(80)
YeLTYZ 发表于 2022-6-9 18:52
n=int(input())
s=0
for i in range(10,n+1):
老哥 你的代码写的真不错 这个学到了
if (i%10) < (i//10):
li270207756 发表于 2022-6-9 18:55
# coding = utf-8
def test1(n):
'''
感谢老哥 {:1_893:}
页:
[1]
2