nyoj 1087 摆方格
2015-09-23 14:19
183 查看
摆方格
时间限制:1000 ms | 内存限制:65535 KB难度:2描述 给你一个n*n的方格,每个方格里的数必须连续摆放如1 | 2 |
4 | 3 |
1 | 3 |
4 | 2 |
1
2
3样例输出
1
6
19
多画几组,找规律!
n=1
1
n=2
21
3 4 //4 2
n=3
3 21
4 7 8
5 6 9 //9 7 3(7/2)
n=4 9101516 811141 71213 2 65 4 3 //16 14 12 6(12/2)
5
1516171819 1413 22 21 20 1112 23 2 1 10 25 24 3 4 9 8 7 6 5 // 25 23 21 19 9(19/2)
规律:等差k-1项+最后一项/2
代码:
[code] #include<stdio.h>#include<string.h>#define N1100//int a;int main(){ long long n; while(scanf("%lld",&n)!=EOF) { long long i,j,k; k=n*n; long long sum=0; for(i=0;i<n-1;i++) { sum+=k; k-=2; } k/=2; sum+=k; printf("%lld\n",sum+1); } return 0;}下面是个等差公式推出来的:[/code]
[code] #include<stdio.h>int main(){ long long n; while(scanf("%lld",&n)!=EOF) { if(n&1) printf("%lld\n",n*n*n-3*n*n/2+2*n-1); else printf("%lld\n",n*n*n-3*n*n/2+2*n); } return 0;}[/code]
相关文章推荐
- jquery 排除重复
- C语言-----二维字符串数组内存图解
- Q&A: HOW TO FIX XCODE’S "USED AS THE NAME OF THE PREVIOUS PARAMETER" WARNING
- 一个常用的布局
- 单例模式
- Axure-产品交互设计师的利器
- 一枚Android "短信小偷" 病毒的分析
- 什么是Block
- java构建与管理(1) - Apache Ant Short History
- Linux添加开机启动项
- Spark-streaming 连接flume
- js构建动态对象数组
- 光流法代码解析
- Spark-streaming 连接flume
- Android5.0之Toolbar使用教程
- git rebase -i 重新提交多个commit之前的commit
- Aprior算法简化算法——FP-Tree思想与实现
- 零基础学python-19.2 列表解析与序列映射函数map(2)增加分支测试与嵌套循环
- Android性能优化之ViewStub
- 零基础学python-19.2 列表解析与序列映射函数map(2)增加分支测试与嵌套循环