如何将 4 位数字转换为单个数字?

问题描述 投票:0回答:3

我需要编写逻辑将 4 位数字分解为各个数字。

在 SO 回复有关 3 位数的问题时,有人给出了以下数学公式:

int first = 321/100;             
int second = (321/10)-first*10;
int third = (321/1)-first*100-second*10;

有人可以帮助我吗?

提前谢谢您!

basic
3个回答
1
投票

嗯,使用您找到的示例,我们可以很容易地为您推断出代码。

第一行表示

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 循环,也许还需要使用一些模数。


0
投票

这段代码计算用户输入的位数 然后将数字一一分解:

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

0
投票

尝试这个方法:

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=',')
© www.soinside.com 2019 - 2024. All rights reserved.