hdu1030

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int whichRow(int x)
{
    
    return 1+(int)(sqrt(x-1));
}
int whichLeft(int row,int num)
{
    int leftNum;
    leftNum=row*row-2*row+2;//最左边的数字 
    return (num-leftNum)/2; 
}
int whichRight(int row,int num)
{
    int rightNum;
    row++;
    rightNum=row*row-2*row+2-1;
    return (rightNum-num)/2;
}
int main()
{
    int M,N;
    int sum=0;
    int rowM,rowN;
    
    while(cin>>M>>N)
    {
        sum=0;
        rowM=whichRow(M);
        rowN=whichRow(N);
        sum+=abs(rowM-rowN);
        sum+=abs(whichLeft(rowM,M)-whichLeft(rowN,N));
        sum+=abs(whichRight(rowM,M)-whichRight(rowN,N));
        cout<<sum<<endl;
    }
    
    
    
    return 0;
}

猜你喜欢

转载自blog.csdn.net/artistkeepmonkey/article/details/88260226
今日推荐