【お題】
Problem 6 「二乗和の差」 †
最初の10個の自然数について, その二乗の和は,1^2 + 2^2 + ... + 10^2 = 385最初の10個の自然数について, その和の二乗は,
(1 + 2 + ... + 10)^2 = 3025これらの数の差は 3025 - 385 = 2640 となる.
同様にして, 最初の100個の自然数について二乗の和と和の二乗の差を求めよ.
【環境】
SQLServer | SQLCMD |
---|---|
2017 | 14.0.1000.169 |
設定はデフォルト。
【数学的に】
DECLARE@MaxINT=100;PRINTPOWER(@Max*(@Max+1)/2,2)-@Max*(@Max+1)*(2*@Max+1)/6;GO25164150
【クエリ】
敢えてクエリで書けば以下。
DECLARE@MaxINT=100;;WITH[CTE_Base]([Val])AS(SELECT1UNIONALLSELECT[Val]+1FROM[CTE_Base]WHERE[Val]<@Max)SELECTSUM([Val])*SUM([Val])-SUM([Val]*[Val])FROM[CTE_Base]OPTION(MAXRECURSION0);GO-----------25164150(1行処理されました)