设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3471|回复: 12
打印 上一主题 下一主题

[模块/函数] 关于小学数学的一道题,用VBA如何写代码?谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2015-3-26 18:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于小学数学的一道题:
今天孩子放学问了我一道数学题:
一个两位数除以8余数最大是(),被除数可能是()。
答案  6;78
孩子问我爸爸这道题如果用VBA如何写代码?电脑如何计算呢?
当时我就蒙了,只能对孩子说爸爸还是菜鸟,等等爸爸也问问老师?
因此请大家看看了,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2015-3-26 18:50:31 | 只看该作者
最大余数是7吧,被除数95、87、79、71、、、、、
3#
 楼主| 发表于 2015-3-26 19:03:39 | 只看该作者
qiang88849 发表于 2015-3-26 18:50
最大余数是7吧,被除数95、87、79、71、、、、、

谢谢帮助!请问如何写代码?

点评

你儿子也学vba了  发表于 2015-3-27 12:43
4#
 楼主| 发表于 2015-3-26 19:04:48 | 只看该作者
题目中一项没写清楚,被除数的个数位是8(?8)
5#
发表于 2015-3-26 21:22:00 | 只看该作者

e

本帖最后由 影子5555 于 2015-3-26 21:32 编辑

代码我是一窍不通滴,不过算法应该是先把所有8的两位数倍数列出来,然后看那个倍数与?8的差值大:
2*8=16  2
3*8=24  4
4*8=32  6
5*8=40  8
6*8=48  0
7*8=56  2
8*8=64  4
9*8=72  6
10*8=80 8
11*8=88  0
12*8=96  2
因为余数只可能是0-7之间的,列表中最大的只有6,所以余数最大的是6,被除数有可能是78,也有可能是38。
13*8=104 4
14*8=112 6
按发展趋势来看,余数从0-8每增加5个数字是一个循环,而余6出现在每个循环的第四次,也就是逢尾数为4或9的数乘以8得到乘数的尾数+6都是8。

其实再简单想,8是双数,不管谁乘以8都是双数,那么这个乘数和?8最大只能差6,那么这个乘数就是?2,然后8只有和尾数为4和9的数相乘得到的乘数尾数是2.

呵呵,小可初来咋到,班门弄斧了。{:soso_e183:}

点击这里给我发消息

6#
发表于 2015-3-26 23:42:37 | 只看该作者
  1. Sub ff()
  2.     Dim mMax As Integer, mNum As String
  3.     Dim mTemp As Integer, mNow As Integer
  4.     For i = 1 To 9
  5.         mNow = i * 10 + 8
  6.         mTemp = mNow Mod 8
  7.         If mTemp > mMax Then
  8.             mMax = mTemp
  9.             mNum = mNow
  10.         ElseIf mTemp = mMax Then
  11.             mNum = mNum & "," & mNow
  12.         End If
  13.     Next
  14.     Debug.Print mMax, mNum
  15. End Sub
复制代码
输出结果:6            38,78


7#
 楼主| 发表于 2015-3-27 07:47:55 | 只看该作者
谢谢各位老师们的帮助!!
8#
 楼主| 发表于 2015-3-27 08:22:20 | 只看该作者
站到终点站 发表于 2015-3-26 23:42
输出结果:6            38,78

站到终点站 ;老师如果想得到2楼的答案如何写代码?谢谢

最大余数是7吧,被除数95、87、79、71、、、、、

点击这里给我发消息

9#
发表于 2015-3-27 09:02:49 | 只看该作者
除以8最大余数当然是 8-1 ,被除数就是 8*n-1 。由于是两位数,所以 9<8*n-1<100,多个解  
10#
 楼主| 发表于 2015-3-27 10:09:54 | 只看该作者
谢谢大家了我算出来了

Sub ff()
    Dim mMax As Integer, mNum As String
    Dim mTemp As Integer, mNow As Integer
    For i = 1 To 10
        mNow = i * 8 - 1
        mTemp = mNow Mod 8
        If mTemp > mMax Then
            mMax = mTemp
          '  mNum = mNow
            
        ElseIf mTemp = mMax Then
            mNum = mNum & "," & mNow
        End If
    Next
    Debug.Print mMax, mNum
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 20:39 , Processed in 0.085914 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表