c语言编程求四位数的数字黑洞,【加试题】神性的数学黑洞数6174。一个任意的四位正整数(四位数字完全相同除外),将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174。如取四...

1.

(2019高二下·温州期中)

条形码是按照一定编码规则排列的图形标识符。如图所示,条形码下方数字左边12位代表信息,最右边一位是校验码。校验码产生方法如下:

c311760c6014714dd85efb806106a0a8.png

①把条形码下方数字从右往左依次编序号为“1,2,3,4……”;

②从序号2开始把所有偶数序号位上的数相加求和,并乘以3;

③从序号3开始把所有奇数序号上的数相加求和;

④把第②和第③步结果相加求和;

⑤10减去第④步结果的个位数,得出校验码(如果差值为10,则校验码为0);

如条形码的数字为:977167121601X(X为校验码),则校验码主要产生步骤如下:

1)   (1+6+2+7+1+7)×3=72

2)   0+1+1+6+7+9=24

3)   72+24=96

4)   10-6=4

所以最后校验码X=4,此条形码数字为9771671216014。

小何为此编写了VB程序,用以验证条形码输入正确与否。程序运行时,从文本框Text1获取条形码数字部分,单击按钮Command1后,在标签Label1中输出结果。实现上述功能的VB代码如下,请补全代码。

Private Sub Command1_Click()

Dim i As Integer, b As String, Lb As Integer

Dim s1 As Integer, s2 As Integer, tmp As Integer

Dim c As String

Dim d(1 To 13) As Integer     '存储数据

Dim res As String             '存储结果

b = Text1.Text              '输入条形码

Lb = Len(b)

s1 = 0 : s2 = 0

flag = True

res = "输入错误!"

listt1.Clear

If  Lb = 13 Then

For i = 1 To 13

c = Mid(b, Lb - i + 1, 1)

If c >= "0" And c <= "9" Then

________          '输入转换

Else

flag = False : Exit For

End If

Next i

If flag Then

For i = 2 To Lb Step 2

s1 =  s1 + d(i)                 '参数计算1

s2 =  ________       '参数计算2

Next i

tmp = s1 * 3 + s2

If  ________ Then res = "输入正确!"

End If

End If

Label1.Caption = res

End Sub

dfad9bd954b0e3e2b3c2b122a1a59c40.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值