明显图中数字组成组成了两条线,一条线上的数字满足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;
}
题解 SP1112 【NSTEPS - Number Steps】
原文:https://www.cnblogs.com/juruoyqr/p/11518066.html