Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows:
21 22 23 24 25
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13
It can be verified that the sum of the numbers on the diagonals is 101.
What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral formed in the same way?
|
#include<iostream>
using namespace std;
int main()
{
int n,m;
int index = 0;
long long temp = 1002001,ans = temp;
int de = 1000;
while((temp-=de) >= 1){
ans+=temp;
index++;
if(index == 4){
de -= 2;
index = 0;
}
if(de<=0) break;
}
cout<<ans<<endl;
return 0;
}
更新一下做法:
#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
int main() {
int sum = 1;
for(int l = 3; l <= 1001; l+= 2) {
sum += 4 * l * l - 6 * l + 6;
}
printf("%d\n", sum);
return 0;
}