我需要编写逻辑来将4位数字分解为单个数字。
在SO的回复中有关3位数的问题,有人给出了下面的数学:
int first = 321/100;
int second = (321/10)-first*10;
int third = (321/1)-first*100-second*10;
有人可以帮助我吗?
提前谢谢!
答案 0 :(得分: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循环,也许可以使用一些模数。
答案 1 :(得分: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