求2009所在的位置

/*
 *1  5  7  19 21
 *3  9  17 23
 *11 15 25
 *13 27
 *29
 *求2009的位置
 */
 1 //  2009Position.cpp : 定义控制台应用程序的入口点。
 2 //
 3
 4 #include  " stdafx.h "
 5 #include  < iostream >
 6
 7 using   namespace  std;
 8 ExpandedBlockStart.gifContractedBlock.gif /**/ /*
 9 *1  5  7  19 21
10 *3  9  17 23
11 *11 15 25
12 *13 27
13 *29
14 *求2009的位置
15 */

16 int  _tmain( int  argc, _TCHAR *  argv[])
17 ExpandedBlockStart.gifContractedBlock.gif {
18    int i = 0;
19    while(cin >> i)
20ExpandedSubBlockStart.gifContractedSubBlock.gif    {
21    int index = (i+1)/2;
22    int line = 1;
23    int count = 1;
24    while(count < index)
25ExpandedSubBlockStart.gifContractedSubBlock.gif    {
26        count += line + 1;
27        line ++;
28    }

29    //求出1 + 2 + 。。。 line - 1
30    int lineBeginNumber = (line * (line - 1/2 + 1* 2 - 1;//所在行的第一个数的值
31    int x = 1, y = 1;
32    if(line % 2 == 1)//奇数行
33ExpandedSubBlockStart.gifContractedSubBlock.gif    {
34        x = line - (i - lineBeginNumber)/2;
35        y = line - x + 1;
36    }

37    if(line % 2 == 0)//偶数行
38ExpandedSubBlockStart.gifContractedSubBlock.gif    {
39        y = line - (i - lineBeginNumber)/2;
40        x = line - y + 1;
41    }

42    cout << "position of " << i << " is in line " << line << ", x: " << x << ", y: " << y << endl;
43    }

44    return 0;
45}

46
47

转载于:https://www.cnblogs.com/KevinPan/archive/2009/10/25/1589562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值