瞬身李子啊 2022-12-24 19:17 采纳率: 77.8%
浏览 30

蓝桥杯杨辉三角数字位置问题

这是蓝桥杯杨辉三角的题目,需要给出数字,然后得到第一次出现数字的位置。

img


自己写的代码是这样的,用的是二分查找,依据的是类似该博主的方法http://t.csdn.cn/tC8uL
运行不出来结果,找了半天问题就是找不到在哪。

#include <stdio.h>
#include <stdlib.h>

int num = 0;

int max(int a,int b)
{
    if (a > b)return a;
    else return b;
}

long long Cab(int a,int b)
{
    long long t = 1;
    for (int i = 1; i <= a; i++)
    {
        t = t * b / i;
        b--;
        if (t > num) return t;
    }
    return t;

    
}

int find(int k)
{
    long long pation = 0;
    long long l = 2 * k;
    long long r = max(l, num);
  
    while (l < r)
    {
        int mid = (l + r) / 2;
        if (Cab(k, r) >= num) r = mid;
        else l = mid + 1;
    }
    if (Cab(k, r) != num)
    {
        return 0;
    }
    else
    {
        pation = (r + 1) * r / 2 + k + 1;
        printf("%lld", pation);
        return 1;
    }
    
}


int main(int argc, char* argv[])
{
    
    scanf("%d", &num);
    if (num == 1)
    {
        printf("%d", 1);
        return 0;
    }
    for (int i = 16; i >= 1; i--)
    {
        if (find(i)) break;
    }

    return 0;
}

  • 写回答

2条回答 默认 最新

  • 木泽八 嵌入式领域优质创作者 2022-12-24 19:52
    关注

    img

    
    #include <stdio.h>
    #include <stdlib.h>
    
    #define _CRT_SECURE_NO_DEPRECATE
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #define M 34
    int main()
    {
        int n;
        int i, j;
        int y[M][M];
        scanf_s("%d", &n);
        for (int i = 0; i < n; i++)
        {
            y[i][0] = 1;
            y[i][i] = 1;//杨辉三角形每行第一列和最后一列数据都为1 
            for (int j = 1; j < i; j++)
            {
                y[i][j] = y[i - 1][j - 1] + y[i - 1][j];//每个数字等于肩上两数字之和 
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j <= i; j++)
            {
                printf("%d ", y[i][j]);
            }
            printf("\n");
        }
        return 0;
    }
    
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 12月24日

悬赏问题

  • ¥15 elasticsearch
  • ¥30 python ttk 获取下拉框问题
  • ¥15 uniapp的uni-datetime-picker组件在ios端不适配
  • ¥15 前端 uniapp App端在离线状态如何使用modbus 连接手机蓝牙进行读写操控机器?
  • ¥15 SQL语句根据字段自动生成行
  • ¥500 “掌声响起来”软件(不确定性人工智能)
  • ¥500 我要找大模型一体机产品手册和应用案例
  • ¥60 用r语言进行数据分析
  • ¥20 关于游戏c++语言代码问题
  • ¥15 如何制作永久二维码,最好是微信也可以扫开的。(相关搜索:管理系统)