【发布时间】:2013-03-22 23:40:24
【问题描述】:
我有一个小问题。我编写了一个程序,要求用户输入包含 11 位数字的代码。我将其定义为字符串,但现在我想单独使用此代码中的每个数字并制作一个等式。
例如,如果代码是37605030299,我需要做方程式:
(1*3 + 2*7 + 3*6 + 4*0 + 5*5 + 6*0 + 7*3 + 8*0 + 9*2 + 1*9) / 11
并找出什么是 MOD。
这是对 ISBN 校验位的计算。
【问题讨论】:
-
你不能乘以字符串(
N1 * 1当N1是一个字符串或字符),你也不能对一个字符串做模(mod)操作。您的问题完全不清楚,因为您要问的任何事情都遥不可及。您必须转换为某种数字才能对其进行乘法或修改。此外,您的问题可以简化为if N11 = (something) then DoThis else DoThat- 根本不需要第二个(N1*1 + N2*2...)。您需要edit您的问题并明确说明您要做什么-您所问的是不可能的。这是 CheckDigit 吗? -
我编辑了,你现在能理解我的问题了吗?
-
是的,它几乎是同一个程序,但我怎么能在 pascal 中做同样的事情?比如:Digit1=int(ISBN[1])*11 ???
标签: pascal freepascal isbn