U E D R , A S I H C RSS

최소정수�합/임��2

~cpp 

roots a b c =
	let
		det = sqrt(b*b - 4*a*c) 
		twice_a = 2 * a
	in ((-b+det)/twice_a,
		(-b+det)/twice_a)

minint val =
	let
		rnd = round (fst (roots 1.0 1.0 (-2*val) ) )
	in
		(rnd, toRational (rnd*(rnd+1))/2)

1~N 까지 합 구하는 부분�

~cpp 
mysum 1 = 1
mysum n = n + mysum (n-1)

로 정�했다가 �전� 작성했��로 gauss � 방법� �용하여,
~cpp 
mysum n = n * (n+1) / 2
로 바꾸었�니 type error가 났다. �유�즉,
~cpp 
rnd = round (fst (roots 1.0 1.0 (-2*val) ) )
ì—�서 rndì�˜ 타입ì�´ Integer로 ë�˜ì—ˆëŠ”ë�° Integer는 다른 값으로 나눠지지 않았다(ë‚´ê°€ 방법ì�„ 모르고 있ì�„수ë�„ 있겠지만). haskell wiki를 뒤져 toRational ì�´ë�¼ëŠ” 함수를 찾았지만 ìœë ¥ë�˜ëŠ” 모양ì�´ ì˜� 마ì�Œì—� 들지 않는다.

HaskellLanguage �서는 다른 언어와 달리 형 변환� 잘 안�다. 왜 �렇게 만들어놓았�까?

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:17
Processing time 0.0035 sec