erlang初学小练习
来源:互联网 发布:物业公司软件 编辑:程序博客网 时间:2024/05/23 14:41
-module(delive).
-compile(export_all).
sum(X, Y) ->
if X >= 9, Y >= 9 ->
io:format("~w * ~w = ~w~n", [X, Y, X * Y]);
X > Y ->
io:format("~w * ~w = ~w", [X, Y, X * Y]),
sum(X, Y + 1);
X =< Y ->
io:format("~w * ~w = ~w~n", [X, Y, X * Y]),
sum(X + 1, 1)
end.
sum() ->
sum(1, 1).
上面是九九乘法表
-module(servertest).
-export([start/0, stop/0, myget/1, myset/2]).
start() ->
register(testserver, spawn(fun loop/0)).
stop() ->
testserver ! stop.
myget(Key) ->
testserver ! {self(), get, Key},
receive
{_Pid, Response} ->
Response
end.
myset(Key, Value) ->
testserver ! {self(), set, Key, Value},
receive
{_Pid, Response} ->
Response
end.
loop() ->
receive
{From, get, Key} ->
From ! {self(), get(Key)},
loop();
{From, set, Key, Value} ->
put(Key, Value),
From ! {self(), ok},
loop();
{From, stop} ->
From ! stop;
_ ->
error
end.
题目一
有1,2, 3, 4个数字,能组成多少个互不相同且不重复的三位数?都是多少?
-module(c1).
-export([count/1]).
count(N) ->
C = [X * 100 + Y * 10 + Z ||
X <- N, Y <- N, Z <- N, X =/= Y, Y =/= Z, X =/= Z
],
length(C).
题目二
企业发放的奖金根据利润提成,利润低于或等于10万元,奖金可提10%;利润高于10万元低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%;20万元到40万元,高于20万元的部分,可提成5%。
-module(c2).
-export([profit_count/1]).
profit_count(N) ->
if
N =< 100000 ->
P = 100000 * 0.1;
N > 100000, N < 200000 ->
P = 100000 * 0.1 + (N - 100000) * 0.075;
N >= 200000, N < 400000 ->
P = (N - 200000) * 0.05
end,
io:format("The profit is ~p~n", [P]).
题目三
一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?
-module(c3).
-export([sqrt_num/0, sqrt_num/1]).
sqrt_num() ->
lists:filter(fun(X) -> is_integer(X) end, [sqrt_num(X) || X <- lists:seq(1, 100)]).
sqrt_num(X) ->
T1 = X + 100,
R1 = trunc(math:sqrt(T1)),
T2 = X + 268,
R2 = trunc(math:sqrt(T2)),
if
(T1 == R1 * R1) and (T2 == R2 * R2) ->
X;
true ->
ok
end.
题目四
输入某年某月某日,判断这一天是这一年的第几天?
-module(c4).
-export([which_day/3]).
which_day(Y, M, D) ->
List = [month_length(Year, Month) || Year <- [Y], Month <- lists:seq(1, M - 1)],
list_size(List, D).
month_length(Year, Month) ->
Leap = if
Year rem 400 == 0 ->
leap;
Year rem 100 == 0 ->
not_leap;
Year rem 4 == 0 ->
leap;
true ->
not_leap
end,
case Month of
3 -> 31;
2 when Leap == leap -> 29;
2 -> 28;
1 -> 31;
4 -> 30
end.
list_size([Head | Tail], Result) ->
list_size(Tail, Head + Result);
list_size([], Result) ->
Result.
题目五
打印所有的“水仙花数”所谓的“水仙花”数即一个三位数,其各位数字的立方和等于该数
-module(c7).
-export([print_flower/0]).
print_flower() ->
[X * 100 + Y * 10 + Z || X <- lists:seq(1, 9), Y <- lists:seq(0, 9), Z <- lists:seq(0, 9), X * X * X + Y * Y * Y + Z * Z * Z == X * 100 + Y * 10 + Z].
题目六
讲一个正整数分解质因数,如90=2*3*3*5
-module(c8).
-export([prime_factor/1]).
prime_factor(N) ->
H = [I || I <- lists:seq(2, N)],
prime(H, N).
prime([H | T], N) ->
if
N rem H =:= 0 ->
io:format("~w ", [H]),
prime_factor(N div H);
true ->
prime(T, N)
end;
prime([], _) ->
ok.
- erlang初学小练习
- 初学分页的小练习
- erlang练习
- Erlang rpc函数初学
- erlang snmp初学(1)
- erlang snmp初学(2)
- erlang 初学代码
- erlang基础练习-排序
- erlang 语法练习
- 初学Erlang注意的几个问题
- Erlang实战练习(一)
- Erlang练习:建立文本索引
- [Erlang 学习笔记]erlang behaviour小总结
- Erlang初学:Erlang的一些特点和个人理解总结
- Erlang初学:Erlang的一些特点和个人理解总结
- 【初学EXT】控件练习
- 【初学EXT】布局练习
- 初学win32GUI 练习源代码
- 文件与注册表的虚拟化技术
- Java反射机制
- CentOS开机自动运行程序的脚本
- JUnit4概述
- 用多态计算一百以内的质数
- erlang初学小练习
- SQL增删改查,循环,触发器,存储过程,以及sql语法
- ruby+watir
- Sumdiv(poj1845)(数学)
- 基于用户管理的同机数据库克隆
- EFM32G(Cortex-M3 内核)NVIC 向量表偏移配置
- eclipse 新建 struts项目
- <meta http-equiv="X-UA-Compatible"content="IE=9; IE=8; IE=7; IE=EDGE">
- C语言中time函数获取系统时间