工学1号馆

home

« | 返回首页 | »

Project Euler 6–Sum square difference

By Wu Yudong on January 14, 2017

The sum of the squares of the first ten natural numbers is,
12 + 22 + … + 102 = 385
The square of the sum of the first ten natural numbers is,
(1 + 2 + … + 10)2 = 552 = 3025
Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640.

Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.

前十个自然数的平方和是:
12 + 22 + … + 102 = 385
前十个自然数的和的平方是:
(1 + 2 + … + 10)2 = 552 = 3025
所以平方和与和的平方的差是3025 – 385 = 2640.

找出前一百个自然数的平方和与和平方的差。

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>

#define N 100

int powplus(int n, int k)
{
	int s = 1;
	while (k--) {
		s *= n;
	}
	return s;
}

int sum1(int n)
{
	return powplus((n + 1) * n / 2, 2);
}

int sum2(int n)
{
	return (n * (n + 1) * (2 * n + 1)) / 6;
}

void solve()
{
	printf("%d\n", sum1(N));
	printf("%d\n", sum2(N));
	printf("%d\n", sum1(N) - sum2(N));
}

int main()
{
	solve();
	return 0;
}

Answer:25164150
Completed on Tue, 2 Apr 2013, 06:57

如果文章对您有帮助,欢迎点击下方按钮打赏作者

Comments

No comments yet.
To verify that you are human, please fill in "七"(required)