链接:https://www.nowcoder.com/acm/contest/93/B
来源:牛客网
Problem Description:
Input:
输入第一行一个整数T(1<=T<=100)
接下来有T组测试数据,每组测试数据输入一个整数n(3<=n<=10000)
保证输入的n为奇数
Output:
对于每组测试数据,输出对应答案
Sample Input:
2
3
5
Sample Output:
25
169
思路:这道题数据很大,10000,如果直接暴力的话,会炸掉的,所以我们可以找规律。n=3时,sum=2+4+5+6+8=25=5*5;n=5时,sum=3+7+8+9+11+12+13+14+15+17+18+19+23=169=13*13;n=7时,sum=4+......+25+.....+46=625=25*25。由此我们可以得到每次的sum都是矩阵里最中心的数的平方。
My DaiMa:
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int t,n;
long long s;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
s=(n/2+1)+(n*(n/2)); //这是求矩阵里面最中心的那个数
printf("%lld\n",s*s);
}
return 0;
}
//只要找到规律,其实代码很简单