我需要编写逻辑将 4 位数字分解为各个数字。
在 SO 回复有关 3 位数的问题时,有人给出了以下数学公式:
int first = 321/100;
int second = (321/10)-first*10;
int third = (321/1)-first*100-second*10;
有人可以帮助我吗?
提前谢谢您!
嗯,使用您找到的示例,我们可以很容易地为您推断出代码。
第一行表示
int first = 321/100;
,返回 3(整数除法是欧氏除法)。 3 确实是 321 中的第一个整数,所以这是一件好事。然而,我们有一个 4 位数字,让我们尝试用 1000 替换 100:
int first = 4321/1000;
这确实返回 4!
让我们尝试调整其余的代码(另外我将您的四位数字放入变量中
entry
)。
int entry = 4321;
int first = entry/1000;
int second = entry/100 - first*10;
int third = entry/10 - first*100 - second*10;
int fourth = entry - first*1000 - second*100 - third*10;
second
将是 entry/100
(43) 减去 first*10
(40),所以我们没问题。
third
然后 432 - 400 - 30
变成 2。这也适用到 fourth
。
对于超过四位数字,您可能需要使用 for 循环,也许还需要使用一些模数。
这段代码计算用户输入的位数 然后将数字一一分解:
PRINT "Enter value";
INPUT V#
X# = V#
DO
IF V# < 1 THEN
EXIT DO
END IF
D = D + 1
V# = INT(V#) / 10
LOOP
PRINT "Digits:"; D
FOR L = D - 1 TO 0 STEP -1
M = INT(X# / 10 ^ L)
PRINT M;
X# = X# - M * 10 ^ L
NEXT
END
尝试这个方法:
num = int(input()) #[your number]
digit3 = num % 10
digit2 = (num // 10) % 10
digit1 = (num // 100) % 10
digit0 = num // 1000
print(digit0, digit1, digit2, digit3, sep=',')