Cube
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
Submit Status
As a student of the applied mathematics school of UESTC,WCM likes mathematics. Some day he found an interesting theorem that everypositive integer's cube can be expressed as the sum of some continuous oddpositive integers. For example,
11×11×11=1331=111+113+115+117+119+121+123+125+127+129+131
Facing such a perfect theorem, WCM felt very agitated.But he didn't know how to prove it. He asked his good friend Tom Riddle forhelp. Tom Riddle is a student of the computer science school of UESTCand is skillful at programming. He used the computer to prove the theorem'svalidity easily. Can you also do it?
Given a positive integer N, you should determine how to express this number as thesum of N continuous odd positive integers. You only need to outputthe smallest and the largest number among the Nintegers.
Input
The input contains an integer on the first line, whichindicates the number of test cases. Each test case contains one positiveinteger N on a single line(0<N≤1000).
Output
For each test case, output two integers on a line, thesmallest and the largest number among the N continuous odd positive integers whose sum is N×N×N.
Sample inputand output
Sample Input | Sample Output |
2 11 3 | 111 131 7 11 |
Source
The 5th UESTC Programming Contest Final
#include <stdio.h>
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
int n,mid,l,r,c;
scanf("%d", &n);
c = n/2;
if (n%2==0)
{
mid = n*n+1;
while (c--)
{
mid-=2;
}
l = mid;
mid = n*n+1;
c = n/2-1;
while (c--)
{
mid += 2;
}
r=mid;
printf("%d %d\n", l, r);
}
else
{
mid = n*n;
while(c--)
mid -= 2;
l = mid;
mid = n*n;
c = n/2;
while (c--)
mid += 2;
r = mid;
printf("%d %d\n", l, r);
}
}
return 0;
}