我们如何找到特定数字的单位数字?
How can we find the unit digits of a specific number?
我只是想知道 python 中是否有代码可以查找我输入的数字的个位数。
Number=int(input('Enter a number:'))
print(Number)
while Number>=100:
print(Number-) #That's a minus sign.
顺便说一句,是的,我正在尝试编写一个程序,该程序接受一个正整数作为输入并使用算法检查该整数是否可以被 11 整除。这个被 11 整除的特殊测试是查尔斯·道奇森 (Charles L. Dodgson) 于 1897 年给出。
所以我需要把数字的个位去掉,然后用个位减去这个数字,直到得到一个两位数,这里我们计算它是否能被11整除。
有人可以帮忙吗?
谢谢,顺便说一句,我在 python 方面经验不足。
看来问题描述不完整。算法可以是:
- 通过省略单位来缩短数字
- 再次从数字中减去单位
- 将数字乘以-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")
我假设你指的是 this algorithm?
如您所说,您需要在 while 循环中执行 2 个操作:
- 求个位数:
unitsDigit = Number % 10
这给出了对 10 取模的数字,这是个位数。你可以认为是除以10后的余数,read more here.
- 不带个位数的数减去个位:
Number = Number // 10
这执行整数除法只给你除以 10 的 商(因此 "deleting" 个位数)。
Number -= unitsDigit
这将从缩短的数字中减去个位数。
Phantom 似乎在用老把戏来确定一个数字是否可以被 11 整除。显然现在你可以只使用模运算符,但让我们假装我们是按照他们 100 年的方式来做的前。对于那些感兴趣的人,请快速 google 打开它:
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))
希望对您有所帮助,这正是您要找的!
我只是想知道 python 中是否有代码可以查找我输入的数字的个位数。
Number=int(input('Enter a number:'))
print(Number)
while Number>=100:
print(Number-) #That's a minus sign.
顺便说一句,是的,我正在尝试编写一个程序,该程序接受一个正整数作为输入并使用算法检查该整数是否可以被 11 整除。这个被 11 整除的特殊测试是查尔斯·道奇森 (Charles L. Dodgson) 于 1897 年给出。
所以我需要把数字的个位去掉,然后用个位减去这个数字,直到得到一个两位数,这里我们计算它是否能被11整除。
有人可以帮忙吗?
谢谢,顺便说一句,我在 python 方面经验不足。
看来问题描述不完整。算法可以是:
- 通过省略单位来缩短数字
- 再次从数字中减去单位
- 将数字乘以-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")
我假设你指的是 this algorithm?
如您所说,您需要在 while 循环中执行 2 个操作:
- 求个位数:
unitsDigit = Number % 10
这给出了对 10 取模的数字,这是个位数。你可以认为是除以10后的余数,read more here.
- 不带个位数的数减去个位:
Number = Number // 10
这执行整数除法只给你除以 10 的 商(因此 "deleting" 个位数)。
Number -= unitsDigit
这将从缩短的数字中减去个位数。
Phantom 似乎在用老把戏来确定一个数字是否可以被 11 整除。显然现在你可以只使用模运算符,但让我们假装我们是按照他们 100 年的方式来做的前。对于那些感兴趣的人,请快速 google 打开它:
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))
希望对您有所帮助,这正是您要找的!