我们怎样才能找到一个特定数字的单位数字?

2024-06-01 06:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是想知道python中是否有一个代码可以找到我输入的数字的单位数字。你知道吗

Number=int(input('Enter a number:'))
print(Number)
while Number>=100:
  print(Number-) #That's a minus sign.

顺便说一句,我正在尝试做一个程序,它接受一个正整数作为输入,并用一个算法检查这个整数是否可以被11整除。1897年,查尔斯L.多格森提出了11整除率的特殊测试。你知道吗

所以我需要去掉这个数的单位数,然后用单位数减去这个数,直到它达到一个两位数,我们计算它是否可以被11整除。你知道吗

有人能帮忙吗?你知道吗

谢谢,顺便说一句,我对python不是很有经验。你知道吗


Tags: 代码程序numberinputthat单位数字int
3条回答

我猜你指的是this algorithm?你知道吗

您需要在while循环中执行2个操作,如您所说:

  1. 查找单位数字:
unitsDigit = Number % 10

这就得到了模10的数字,即单位数字。你可以把它看作是被10除后的余数。你知道吗

  1. 从没有单位数字的数字中减去单位数字:
Number = Number // 10

这将执行整数除法,以仅给出除以10所得的商(因此“删除”单位数字)。你知道吗

Number -= unitsDigit

这将从缩短的数字中减去单位数字。你知道吗

看起来幻影在遵循一个老把戏来判断一个数字是否可以被11整除。很明显,现在你可以使用模运算符,但是让我们假设我们是按照100年前的方式来做的。对于那些感兴趣的人,谷歌很快发现了这个:

https://wcipeg.com/problem/ccc96s2

为了让它工作,我们必须前后翻转,把数字当作一个字符串和一个整数。作为一个字符串,我们可以很容易地将数字分割开来并遵循这个过程。你知道吗

# From Phantom's code
input_number = int(input('enter a number: '))
print(input_number)

# An intermediate variable to hold the number
worker = abs(input_number)

# for loop that is equal to one less than the number of digits
while worker > 10 :   # Edit - Thanks JohanC for the suggestion in the comments
    # take the last digit and subtract it from the remainging digits
    worker = int(str(worker)[0:(len(str(worker))-1)]) - int(str(worker)[-1])
    print(worker)

# Finish with a print of the divisibility
if worker == 0 : 
    print('The number {} is divisible by 11.'.format(input_number))
else : 
    print('The number {} is not divisible by 11.'.format(input_number))

希望这对你有所帮助,这就是你要找的!你知道吗

问题描述似乎不完整。算法可以是:

  • 省去单位来缩短数字
  • 再从数字中减去单位
  • 把这个数字乘以-1

最终结果将是模11的数字,尽管它可能是负数。你知道吗

num = int(input('Enter a number:'))
print("Given number:   ", num, "   Trying to find num % 11 =", num % 11)
while abs(num) >= 11:
    units = num % 10
    num //= 10  # integer division
    num -= units
    num = -num
    print("Modified number:", num)
if num < 0:
    num += 11
print("Result:", num)

一种简化的算法,不需要麻烦的num = -num来检查11的可除性:

num = int(input('Enter a number:'))
print("Given number:   ", num, "   Trying to find num % 11 == 0 :", num % 11 == 0)
given_number = num
while num >= 100:
    units = num % 10  # find the last digit
    num //= 10  # integer division (i.e. remove the last digit)
    num -= units  # subtract the just found last digi
    print("Modified number:", num)

if num in [0, 11, 22, 33, 44, 55, 66, 77, 88, 99]:
    print(given_number, "is divisible by 11")
else:
    print(given_number, "is NOT divisible by 11")

相关问题 更多 >