文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
描述 Description
一天黑皮不务正业出去耍,看见街上的地板是由很多小的正方形组成,顿时心里突发奇想想要总结一下到底有多少正方形。。。。
于是乎,他狠下心数了数,终于翻山越岭知道了正方形的总边长为N,你的目的是找出在可以组成的每个至少边为1的正方形的个数。(因为黑皮太笨了,无法找到)。。
输入格式 Input Format
自然数(0<=n<=32767)
输出格式 Output Format
一个数,即正方形的总数
Tip:拿笔在纸上写几个数就知道这是自然数的平方和了,用 n*(n+1)*(2*n+1)/6 公式可以很方便地求出结果,但是第一次我WA了,最后三个数没过,想到可能是long不够,准备换成long long来算,可是中间试验的时候发现当n在10000左右的时候数据溢出了,换成double型也同样溢出。。。考虑到这可能是n*(n+1)*(2*n+1)/6 公式的问题。。。换成循环,没问题,提交,AC。。。
#include <stdio.h>
int main(){
int i,n;
double sum=0;
scanf(“%ld”,&n);
for (i=1;i<=n;i++) sum+=i*i;
printf(“%.0lf”,sum);
system(“pause”);
return 0;
}
转载请注明:Slyar Home » Vijos P1307 黑皮的正方形 C语言版