在vb上了解到的算法
1.辗转相除法:
m = Val(InputBox("请输入一个数字")) n = Val(InputBox("请输入一个数字")) If m < n Then t = m: m = n: n = t End If r = m Mod n Do While (r <> 0) m = n n = r r = m Mod n Loop MsgBox ("最大公约数 = " & n)
第一处的if判断是为交换输入的值;
辗转相除法就是用 数 a , b 相除(如:a / b 如果得到余数r,就用b / r 相除)
又叫做欧几里德算法(卧槽,我以为是中国人发明的)
2. t = t*10+n
这个用于出现1;12;123;1234;12345这样的数
t = 0 For i = 1 To 9 t = t * 10 + i Print Tab(11 - i); t & " X8+" & i & "=" & t * 8 + i Next i
1 X 8 + 1 = 9
12 X 8 + 2 = 98
123 X 8 + 3 = 987
1234 X 8 + 4 = 9876
12345 X 8 + 5 = 98765
123456 X 8 + 6 = 987654
1234567 X 8 + 7 = 9876543
12345678 X 8 + 8 = 98765432
关键是t = t*10+n

浙公网安备 33010602011771号