网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月01日漏签0天
lua吧 关注:11,644贴子:22,022
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 6回复贴,共1页
<<返回lua吧
>0< 加载中...

【编程解决智力题之四】小学奥数题?

  • 只看楼主
  • 收藏

  • 回复
  • 沙城雨人
  • 赫赫有名
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
【题目】:假设ABCD是N进制下的数,假如ABCD*k=DCBA (设k是d进制下的非零个位数),请求出4-16进制下符合题意的所有解。
【分析】:如果这个题只求10进制下的解,那么就是一个小学奥数题,可以用各种拼凑法算出最后的答案,当然高手也可以用数论知识,用欧拉或费马定理去求解。but,我们有编程这个强大武器,这种问题用程序来处理完全是小case.
首先理解一下进制。常用的10进值就是逢10进1,一个10进制的ABCD,相当于:
A * 10^3 + B * 10^2 + C*10 + D
而如果是16进制,就是逢16进1,一个16进制的ABCD,相当于:
A * 16^3 + B * 16^2 + C*16 + D
程序如下:
local function findNextNum(n,start,...)
local num=start-1
local aa,bb,cc=...
repeat
num=num+1
if num==n then break end
until num~=aa and num~=bb and num~=cc
return num
end
local function solving()
local a,b,c,d,k
local n=4
while n<17 do
a=0
while a<n do
b=0
while b<n do
b=findNextNum(n,b,a)
if b==n then break end
c=0
while c<n do
c=findNextNum(n,c,a,b)
if c==n then break end
d=0
while d<n do
d=findNextNum(n,d,a,b,c)
if d==n then break end
local p = a*n*n*n + b*n*n + c*n + d
local q = d*n*n*n + c*n*n + b*n + a
if math.mod(q,p)==0 and q/p<n then
print("N="..n)
print("A="..a,"B="..b,"C="..c,"D="..d)
print("K="..q/p)
print("------------------------------")
end
d=d+1
end
c=c+1
end
b=b+1
end
a=a+1
end
n=n+1
end
print ("End of solving")
end
solving()
---------------------------------------
结果:
N=4
A=1B=0C=2D=3
K=3
------------------------------
N=5
A=1B=0C=3D=4
K=4
------------------------------
N=6
A=1B=0C=4D=5
K=5
------------------------------
N=6
A=2B=1C=3D=4
K=2
------------------------------
N=7
A=1B=0C=5D=6
K=6
------------------------------
N=8
A=0B=5C=7D=2
K=4
------------------------------
N=8
A=1B=0C=6D=7
K=7
------------------------------
N=8
A=2B=1C=5D=6
K=3
------------------------------
N=9
A=0B=5C=8D=3
K=6
------------------------------
N=9
A=1B=0C=7D=8
K=8
------------------------------
N=9
A=3B=2C=5D=6
K=2
------------------------------
N=10
A=1B=0C=8D=9
K=9
------------------------------
N=10
A=2B=1C=7D=8
K=4
------------------------------
N=11
A=1B=0C=9D=10
K=10
------------------------------
N=11
A=1B=2C=9D=8
K=7
------------------------------
N=11
A=1B=6C=9D=4
K=3
------------------------------
N=11
A=2B=9C=6D=8
K=3
------------------------------
N=12
A=1B=0C=10D=11
K=11
------------------------------
N=12
A=2B=1C=9D=10
K=5
------------------------------
N=12
A=3B=2C=8D=9
K=3
------------------------------
N=12
A=4B=3C=7D=8
K=2
------------------------------
N=13
A=1B=0C=11D=12
K=12
------------------------------
N=14
A=0B=9C=13D=4
K=7
------------------------------
N=14
A=1B=0C=12D=13
K=13
------------------------------
N=14
A=2B=1C=11D=12
K=6
------------------------------
N=15
A=0B=9C=14D=5
K=9
------------------------------
N=15
A=0B=11C=14D=3
K=5
------------------------------
N=15
A=1B=0C=2D=11
K=11
------------------------------
N=15
A=1B=0C=13D=14
K=14
------------------------------
N=15
A=3B=2C=11D=12
K=4
------------------------------
N=15
A=5B=4C=9D=10
K=2
------------------------------
N=16
A=0B=13C=4D=8
K=10
------------------------------
N=16
A=1B=0C=14D=15
K=15
------------------------------
N=16
A=2B=1C=13D=14
K=7
------------------------------
N=16
A=4B=3C=11D=12
K=3
------------------------------
End of solving


  • 玖
  • 小有美名
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
速度更新啊,完全停不下来


2026-03-01 00:41:35
广告
不感兴趣
开通SVIP免广告
  • 来看小徐成
  • 闻名一方
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没缩进 好辛苦 不看了


  • x894597841
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好难,读小学不容易


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回lua吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示