您的位置:首页 > 其它

给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 【注意: 如果输入的大于了5位数要求用户重新输入】

2018-03-05 20:30 1676 查看
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。【注意: 如果输入的大于了5位数要求用户重新输入】
def weishu(num):
n=1
while True:
num//=10
if(num==0):
break
else:
n+=1;
return n;
def nixu(num):
res=weishu(num);
a=num%10;
b=num//10%10;
c=num//100%10;
d=num//1000%10;
e=num//10000;
if(res==5):
print('逆序为',a,b,c,d,e,sep='');
elif(res==4):
print('逆序为',a,b,c,d,sep='');
elif(res==3):
print('逆序为',a,b,c,sep='');
elif(res==2):
print('逆序为',a,b,sep='');
else:
print('逆序为',a);
while True:
num1=int(input('输入一个不多于五位的正整数:'));
while(weishu(num1)>5):
print('请输入不多于五位的数字,输入错误,重新输入');
break;
else:
print('这是一个',weishu(num1),'位数');
nixu(num1);


逆序那一步可以换一种写法:
def weishu(num):
n=1;
while True:
num//=10;
if(num==0):
break;
else:
n+=1;
return n;
def nixu(num):
sum=weishu(num);
for i in range(1,sum+1):
if(num%10!=0):
a=num%10;
num//=10;
print(a,end='');
print('');
while True:
num1=int(input('输入一个不多于五位的正整数:'));
while(weishu(num1)>5):
print('请输入不多于五位的数字,输入错误,重新输入');
break;
else:
print('这是一个',weishu(num1),'位数');
nixu(num1);


这种逆序写法比较好
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐