微凉
发表于 2016-11-21 13:02:19
25164150
芒果加黄桃
发表于 2017-1-9 09:54:28
from time import time
def calc(number=10):
return sum(range(1, 101)) ** 2 - sum()
start = time()
print(calc(100))
print('cost %.3f sec' % (time() - start))
渡风
发表于 2017-1-12 22:22:56
此代码使用matlab编程
Problem6所用时间为0.0012004秒
Problem6的答案为25164150
%题目6:平方和与和平方的差是多少?
function Output=Problem6(Input)
tic
if nargin==0
Input=100;
end
Rank=1:Input;
Num1=sum(Rank)^2;
Num2=sum(Rank.*Rank);
Output=Num1-Num2;
toc
disp('此代码使用matlab编程')
disp(['Problem6所用时间为',num2str(toc),'秒'])
disp(['Problem6的答案为',num2str(Output)])
end
FlySelf
发表于 2017-2-2 14:25:42
'''
思路:
自然数的平方和公式为:n(n+1)(2n+1)/6
自然数和的平方公式为:(n(n+1)/2)^2
'''
import time
def difference(number):
'计算你个自然数的平方和与和平方的差'
dif = 0
sum_of_squares = number * (number + 1) * (2 * number + 1) / 6
square_of_sum = (number * (number + 1) / 2) ** 2
dif = square_of_sum - sum_of_squares
return dif
start = time.clock()
print('前一百个自然数的平方和与和平方之差为%d' %difference(100))
end = time.clock()
print('程序执行了%fs。' %(end - start))
执行结果:
前一百个自然数的平方和与和平方之差为25164150
程序执行了0.000161s。
看了看前面的答案,竟然只有一个java的是使用了数列,其他都是循环,循环的效率明显低下
夜魔时生
发表于 2017-3-6 14:34:26
a=sum()-sum(list(range(1,101)))**2
print(a)
99592938
发表于 2017-3-14 15:45:11
sumsq=sum1=0
for i in range(1,101):
sumsq+=i**2
sum1+=i
sqsum=sum1**2
print(sqsum-sumsq)
99592938
发表于 2017-3-14 15:45:45
sumsq=sum1=0
for i in range(1,101):
sumsq+=i**2
sum1+=i
sqsum=sum1**2
print(sqsum-sumsq)
JonTargaryen
发表于 2017-3-27 11:09:49
这个是有公式的呀,根本不需要循环
#include <stdio.h>
#include <math.h>
int main(void)
{
long int sum_square, square_sum = 0;
long int result;
int n = 100;
sum_square = pow(n * (n + 1) / 2, 2);
square_sum = n * (n + 1) * (2 * n + 1) / 6;
result = sum_square - square_sum;
printf("%ld\n", result);
return 0;
}
JonTargaryen
发表于 2017-3-27 11:11:04
JonTargaryen 发表于 2017-3-27 11:09
这个是有公式的呀,根本不需要循环
n = 100
sum_square = n * (n + 1) * (2 * n + 1) / 6
square_sum = n * (n - 1) / 2 * n * (n - 1) / 2
print(square_sum - sum_square)
凌晨分子
发表于 2017-4-5 21:54:04
结果:24174150
代码:
sum(x for x in range(1,100))**2 - sum(x**2 for x in range(1,100))
Eagle.Tong
发表于 2017-4-16 21:45:11
#求前100自然数的和的平方和平方之和的差
import time
start = time.time()
def sumsquare(n):
sumsquare100 = 0
for i in range(1,n+1):
sumsquare100 += i**2
return sumsquare100
def squaresum(n):
sum100 = 0
for i in range(1,n+1):
sum100 += i
return sum100**2
print(squaresum(100)-sumsquare(100))
end = time.time()
print(end-start)
结果:25164150
时间:0.005005598068237305
天之南
发表于 2017-4-30 21:43:38
#include<stdio.h>
int main()
{
const int L = 100;
int a = 0;
int b = 0;
for (int i = 1;i <= L;i++)
{
a += (i*i);
b += i;
}
printf("%d\n", b*b - a);
return 0;
}
铭记太阳
发表于 2017-5-4 16:51:30
答案是25164150
#include<stdio.h>
//1^2+2^2+...+n^2 = n*(n+1)*(2n+1)/6
int main(void)
{
int n,rst; //n表示前n个数字
printf("enter the num:\t");
scanf("%d",&n);
rst=n*n*(n+1)*(n+1)/4-n*(n+1)*(2*n+1)/6;
printf("%d\n",rst);
return 0;
}
格式化、
发表于 2017-6-7 15:54:05
public static void main(String[] args) {
// 6、前是个自然数的平方和是:12+22+32+42+52……102=385;
// 前十个自然数的和的平方是:(1+2+3+4+5…10) 2=552=3025;
// 所以平方和与和的平方差是3025-385=2640.
// 找出前100个自然数的平方和与和平方的差
int sum = 0, sum1 = 0, sub = 0;
for (int i = 1; i < 101; i++) {
sum = sum + i * i;
sum1 = sum1 + i;
}
sum1 = sum1 * sum1;
sub = sum1 - sum;
System.out.println(sub);
}
水冢
发表于 2017-8-22 21:08:05
#include <stdio.h>
#define N 100
int main(void){
int sum = 0, sum1 = 0;
sum = N * (N+1) * (2*N+1) / 6;
sum1 = (1+N) * N / 2;
sum1 *= sum1;
printf("%d",sum1 - sum);
return 0;
}
水冢
发表于 2017-8-22 21:08:37
水冢 发表于 2017-8-22 21:08
25164150
麦特的灰
发表于 2017-9-2 09:27:25
#前一百个自然数和的平方减去平方的和
method1 = 0
method2 = 0
for i in range(1,101):
method1=method1+i**2
method2=method2+i
method2=method2**2
print("method2-method1=%d-%d=%d"%(method2,method1,method2-method1))
BngThea
发表于 2017-9-11 17:17:10
square,sumi = 0,0
for i in range(1,101):
square += i*i
sumi += i
print(sumi*sumi - square)
zjhnz
发表于 2018-1-4 15:48:35
#include <stdio.h>
#define N 100
long sum(int n)
{
if (n%2)
{
return n/2*n+n;
}
else
{
return (n+1)*n/2;
}
}
int main(void)
{
long long suma=0;
long long sumb;
for( int i=1; i<=100; i++)
{
suma=suma+i*i;
}
sumb=sum(N)*sum(N);
printf("%lld",sumb-suma);
}
由我们主宰
发表于 2018-3-5 16:14:25
#include<stdio.h>
#include<math.h>
int SquareSum(int x)
{
int i,y=0;
for(i=1;i<=x;i++)
{
y=y+i*i;
}
return y;
}
int SumSquare(int x)
{
int i,y=0;
for(i=1;i<=x;i++)
{
y=y+i;
}
return y*y;
}
void main()
{
int n=100;
printf("%d\n",abs(SquareSum(n)-SumSquare(n)));
}