题解 SP1112 【NSTEPS - Number Steps】

明显图中数字组成组成了两条线,一条线上的数字满足y=x,另一条满足y=x-2。所以只要x!=y且x!=y+2就输出无解就行了。再看线上的数字,我们可以把\(a_{n}\)\(a_{n+1}\)分为一组,可以看出\(a_{n}+1=a_{n+1},a_{n}+4=a_{n+2}\)(n为偶数)。
于是就可以很简单地推出两条线的公式了。

左线:k=(x/2)*4+x%2

右线:k=(y/2)*4+2+y%2

然后就可以写出代码了:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int t,x,y;
    cin>>t;
    for(int i=0;i<t;i++){
        cin>>x>>y;
        if(x==y)
            cout<<(x/2)*4+x%2<<endl;
        else if(x==y+2)
            cout<<(y/2)*4+2+y%2<<endl;
        else 
            cout<<"No Number"<<endl;
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/juruoyqr/p/11518066.html