当前位置:   article > 正文

2021蓝桥杯B组 第I题杨辉三角形_蓝桥杯b组真题 杨辉三角数

蓝桥杯b组真题 杨辉三角数

第I题 杨辉三角

题目大意:

解法一:(得20%)

思路:

当指考虑小范围的值时,我们可以直接根据杨辉三角形的规律:第i行第j列的值=第i-1行第j列的值+第i-1行第j-11列的值,来把前50个杨辉三角形的数存入数组中,最后通过一个循环来查找就可以得到20%的分数。

代码如下:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long LL;
  4. const int N = 10100;
  5. LL dp[N][N];//用来存入杨辉三角形的每一个数
  6. LL sk[N];//记入每个数是第几个数
  7. int s = 1;
  8. int n;
  9. int main() {
  10. cin >> n;
  11. dp[0][0] = 1;
  12. for (int i = 1; i <= 50; i++) {
  13. for (int j = 1; j <= i; j++) {
  14. dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];//杨辉三角形的规律
  15. sk[s++] = dp[i][j];
  16. }
  17. }
  18. for (int i = 1; i <= 10000; i++) {
  19. if (sk[i] == n) {//第一次相等即为该数第一次出现的位置
  20. cout << i;
  21. break;
  22. }
  23. }
  24. return 0;
  25. }

解法二:(得全部分)

思路:

 对杨辉三角形进行仔细观察可知道,其中有很多数是重复的,因此我们只需要记录其有效部分。具体规律如下图所示:

还可以发现,对于同一行,列数越大对应的数值也越大。而且某一行的某一列的值为x,在列数不变的情况下,无论行数怎么变大都不会再出现比x小的数;同理再行数不变的情况下列数怎么变大也不会出现比x小的数。并且得知n小于等于10的0次方时,有效列数为0-16列。因此我们可以一列一列的考虑,由于随着行号的变大,数值时单调递增的,其知道了行号、列号对应的数值也就知道了,于是便可以二分行号,使用二分查找的方法来计算本题。

代码如下:

  1. #include <bits/stdc++.h>
  2. typedef long long ll;
  3. using namespace std;
  4. ll N;
  5. ll C(int a, int b)//求第i行第j列的值
  6. {
  7. ll res = 1;
  8. for (ll i = a, j = 1; j <= b; i--, j++)
  9. {
  10. res = res * i / j;
  11. if (res > N)//如果中间结果超过N就直接返回
  12. return res;
  13. }
  14. return res;
  15. }
  16. int main()
  17. {
  18. cin >> N;
  19. for (int k = 16; k >= 0; k--)//一列一列的找
  20. {
  21. ll l = 2 * k, r = max(N, l), mid;
  22. while (l <= r) {//对第k列二分查找行
  23. mid = l + (r - l) / 2;//二分行
  24. ll CC = C(mid, k);
  25. if (CC == N)
  26. break;
  27. else if (CC > N)
  28. r = mid - 1;
  29. else
  30. l = mid + 1;
  31. }
  32. if (C(mid, k) == N)
  33. {//第mid行、第k列的数就是N
  34. cout << (mid + 1) * mid / 2 + k + 1 << endl;
  35. //杨辉三角形的行数符号公差为1的等差数列,故用等差数列求和公式
  36. //加上第几列再加上1(因为列从0开始)即可得出该数的位置
  37. break;
  38. }
  39. }
  40. return 0;
  41. }

大数据201 liyang

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/439365
推荐阅读
相关标签
  

闽ICP备14008679号