[解题报告]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;
}

 

 

转载于:https://www.cnblogs.com/qisong178878915/archive/2013/02/22/2922634.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值