HWOJ 杨辉三角的变形
题目:
题目分析:
思路分析:
1)直接利用遍历对每一行去查找,这样算法复杂度比较高
2)我们多写几行,观察下
通过观察我们可以知道
1.前两行没有偶数可直接返回-1、
2.从第三行开始、奇数行第一个偶数出现的位置为2、
3.从第四行开始、偶数行第一个偶数出现的位置最少在3以上才出现
==============================================================================
参考代码:
//.cpp #include <iostream> using namespace std; int run(int x) { if(x <= 2) //第一二行都没有偶数,所有输出为-1 return -1; else if(x % 2 == 1) //奇数行则输出2 (这里注意可以判断奇数可以采用位运算if(x & 1) return 2; return (x / 2 % 2 + 3); //位运算return((x >> 1) & 1) + 3; } int main() { int n; cin >> n; cout << run(n) << endl; return 0; }