一个糟糕的Erlang练习题
好吧,用的语法很糟糕。。。但是至少是做了练习。
题目
%The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be: %1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... %Let us list the factors of the first seven triangle numbers: % % 1: 1 % 3: 1,3 % 6: 1,2,3,6 %10: 1,2,5,10 %15: 1,3,5,15 %21: 1,3,7,21 %28: 1,2,4,7,14,28 %We can see that 28 is the first triangle number to have over five divisors. %What is the value of the first triangle number to have over five hundred divisors?
好吧,我先写了个module,用来计算triangle num:
-module(triangle). -export([triNum/1]). triNum(0) -> 0; triNum(N) -> N + triNum(N-1).
然后,我写了个module,来计算具体某个数有多少个triNum:
-module(divisor). -export([num_of_divisor/2]). num_of_divisor(_, 0) -> 0; num_of_divisor(Num, Factor) when (Num rem Factor) =:= 0 -> 2 + num_of_divisor(Num, Factor - 1); num_of_divisor(Num, Factor) when (Num rem Factor) =/= 0 -> num_of_divisor(Num, Factor-1).
好吧,然后,我又用了第三个module:
-module(forRange). -export([forRange/1]). -import(triangle, [triNum/1]). -import(divisor, [num_of_divisor/2]). forRange(0) -> 0; forRange(N) when N>0 -> TriNum = triNum(N), Res = num_of_divisor(TriNum, TriNum)/2, if Res >= 100 -> io:format("~f~n", [Res]), io:format("~b~n", [N]); true -> io:format("~n") end, forRange(N-1).
。。。
最后数找到了384,我还给自己找了个冠冕堂皇的接口,我还在熟悉语法。。。
——————
无论在哪里做什么,只要坚持服务、创新、创造价值,其他的东西自然都会来的。
无论在哪里做什么,只要坚持服务、创新、创造价值,其他的东西自然都会来的。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?