モジュール:テスト2

2年12月7日 (W) 21:17時点における (トーク | 投稿記録)による版

このモジュールについての説明文ページを モジュール:テスト2/doc に作成できます

local p={}

function p.listTurples(frame)
	local ansTyp = frame.args[1]
	local ans = assert(tonumber(frame.args[2]), "答えを半角数字で指定してください。")
	local arr = {}
	local t = 3
	while frame.args[t] do
		arr[t-2] = frame.args[t]
		t = t + 1
	end
	local output = ""
	if ansTyp == "sum"then
		for i = 1, #arr - 2 do
			for j = i + 1, #arr - 1 do
				if i ~= j then
					local rest = ans - i - j
					for k = j + 1, #arr do
						if arr[k] == rest then
							output = output.."("..arr[i]..","..arr[j]..","..rest..")"
						end
					end
				end
			end
		end
		if output == "" then return "指定された条件に適する組はありません。" end
		return output
	elseif ansTyp == "product" then
		for i = 1, #arr - 2 do
			for j = i + 1, #arr - 1 do
				if i ~= j then
					if ans % (i * j) == 0 then
						rest = ans % (i * j)
						for k = j + 1, #arr do
							if arr[k] == rest then
								output = output.."("..arr[i]..","..arr[j]..","..rest..")"
							end
						end
					end
				end
			end
		end
		if output == "" then return "指定された条件に適する組はありません。" end
		return output
	else
		error("答えの種類を適切に指定してください")
	end
end

return p