最新消息:点击查看大S的省钱秘笈

Vijos P1307 黑皮的正方形 C语言版

Vijos题解 Slyar 45浏览 0评论

文章作者:姜南(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语言版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址