[解题报告]913 - Joana and the Odd Numbers

题目大意

题目原文:http://uva.onlinejudge.org/external/9/913.pdf

背景:

Joana喜歡玩關於奇數的遊戲。有一天,她開始寫,每列都是奇數,如下表。
1
3 5 7
9 11 13 1517
19 21 23 25 27 29 31
...
在某一列Joana寫下了55個奇數數字,你可以看出該列最後3個數字的和嗎? 給你一個數字N,代表某一列有N個奇數數字,你的任務是把該列最後三個數加起來。 

输入

输入含有多组测试数据。
每组测试数据一列,有一个数字 N,表示某一列有 N 个奇数数字(1 < N < 1000000000)。

 

输出

对每组测试数据,输出该列的最后三个数字的和。本问题中保证三个数字的和一定小于2的63次方。

 

 

Sample Input

3
5
7

Sample Output

15
45
87

算法:

我的思路是找到下一行的头一个数字,然后往回算。

 

 

代码:

这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。

View Code
#include<stdio.h>
int main(void)
{
    long long n,a,b,c[3],sum;
    while(scanf("%lld",&n)!=EOF)
    {
        sum=0;
        b=(n+1)/2;
        a=(b+b*(b-1))*2+1;
        c[0]=a-2;c[1]=a-4;c[2]=a-6;
        sum=c[0]+c[1]+c[2];
        printf("%lld\n",sum);
    }
    return 0;
}

 

 

posted @ 2013-02-22 17:31  乱七八糟 。  阅读(396)  评论(0编辑  收藏  举报