ガウスののしき
ガウスののしき
先生は学生を静かにするために、また1から100の問題を出しました.
ガウスは一瞬にして答えを出した!
1から100を加え、順番に100から1を加える
(1+100,2+99,3+98,4+97 ... 100+1)
では、数字ごとに101を100個加算します.
合わせて10100(101は100個なので)、
元の1から100までの数をもう一度加えたようです.
10100を2で割ると5050になります.
どのように使いますか。
n(x+y)/2はx,yと表す
(y-x)+1)(x+y)/2.
(xとyの関係はx
例
両者のどちらが値段が高いか分からない.
2つの整数の間の数字の加算値を求めます
function solution(a, b) {
return ((Math.abs(a - b) + 1) * (a + b)) / 2;
}
aとbの大きな値が何なのか分からないので、Math.abs()を使用しました.使用料(price)、保有金額(money)、使用回数(count)を提供します.
n回以上使用すると、価格がn倍になります.
moneyを持ってcountを利用すると、足りない金額を求めます.
(足りない場合は0を返します)
function solution(price, money, count) {
const result = (price * count * (count + 1)) / 2 - money;
return result > 0 ? result : 0;
}
例:price=3、money=20、count=41回使用時、20(money)-(price*count(1)=17
2回使用時、17(money)-(price*count(2)=11
3回使用時、11(money)-(price*count(3)=2
4回使用する場合、2(money)-(price*count(4)=-10
足りないお金は10です.
式ではresult=(3*4*5)/2-20==-10
もう一度やってみよう
price = 5, money = 43, count = 18
result = 5 *18 *19/2 - 43 === 812
他の関数に適用した場合と同じ値
Reference
この問題について(ガウスののしき), 我々は、より多くの情報をここで見つけました https://velog.io/@elinapark/가우스-공식등차수열의-합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol