Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在DELPHI中找到输入数字的千位、百位、十位和一位数字?例如:155有5个一、5个十等_Delphi_Math_Digits - Fatal编程技术网

如何在DELPHI中找到输入数字的千位、百位、十位和一位数字?例如:155有5个一、5个十等

如何在DELPHI中找到输入数字的千位、百位、十位和一位数字?例如:155有5个一、5个十等,delphi,math,digits,Delphi,Math,Digits,你非常接近一个解决方案。实际上,每次迭代都需要迭代并将数字除以10。唯一缺少的是您需要提取最低有效数字。为此,您可以使用mod操作符: 程序数字; {$APPTYPE控制台} {$R*.res} 使用 System.SysUtils; 变量 x、 p:整数; 开始 尽管如此 开始 Writeln('输入一个非负整数:'); Readln(x); p:=1; 而x0可以 开始 Writeln('position',p',:',x mod 10); x:=x第10部分; 公司(p),; 结束; 书面

你非常接近一个解决方案。实际上,每次迭代都需要迭代并将数字除以10。唯一缺少的是您需要提取最低有效数字。为此,您可以使用
mod
操作符:

程序数字;
{$APPTYPE控制台}
{$R*.res}
使用
System.SysUtils;
变量
x、 p:整数;
开始
尽管如此
开始
Writeln('输入一个非负整数:');
Readln(x);
p:=1;
而x0可以
开始
Writeln('position',p',:',x mod 10);
x:=x第10部分;
公司(p),;
结束;
书面文件('--');
结束;
结束。


显然这是行不通的,因为例如155 DIV 10=15,那么我应该怎么做才能让它工作呢?实际上,使用文本可能更有效operations@DavidHeffernan:是的,那么也许你可以每秒做20000000次,而不仅仅是10000000次!(好吧,不需要阶乘。)只需使用
MOD
DIV
的组合。例如,对于数百,您可以执行
iNumHun:=iNum MOD 1000 DIV 100
iNumHun:=iNum DIV 100 MOD 10。为什么不对此仅使用文本操作?特别是如果我们从十进制开始。为什么要转换成二进制,然后再转换回十进制?@DavidHeffernan:我不太喜欢在不需要的时候使用文本表示法。此外,在OP的示例中,输入是一个十进制字符串,但我打赌人们会从Google中找到这样的Q&a,并将其应用于他们的(非文本)整数值。最后,我发现指出OP非常接近(通常非常体面)解决方案具有教学价值。此外,如果输入是
523 362 102
523,该怎么办 362 102
?将其实际解析为整数更安全。(尝试双击每个数字中的362。)
var 
  iNum, iNumHun, iNumTens, iNumOnes : Integer;

begin

iNum := StrToInt(edtInput.Text);

iNumHun := iNum DIV 100;

iNumTens := iNum DIV 10;

iNumOnes = iNum DIV 1;
Enter a non-negative integer:
155
position 1: 5
position 2: 5
position 3: 1
---
Enter a non-negative integer:
653281205
position 1: 5
position 2: 0
position 3: 2
position 4: 1
position 5: 8
position 6: 2
position 7: 3
position 8: 5
position 9: 6
---