裸题

Problem Description
Here is no naked girl nor naked runners, but a naked problem: you are to find the K-th smallest element in the set of all irreducible fractions p/q,with 0<p<q<=N.
Input
The first line of input is an integer T(T<=1000), indicating there are T cases.
For each cases, there is one line with two positive integers N and K(1<=K<N<=100000).
Output
For each case, output one line containing the answer.
Sample Input
4
5 1
5 2
5 3
5 4
Sample Output
1/5
1/4
1/3
2/5
//题解:???
//标程:
#include<iostream>
#include<cstdio>
using namespace std;
const int size = 1000010;
int a1[size],a2[size],b1[size],b2[size],s[size];
int main()
{
//  freopen("a.txt","r",stdin);
    int t, n, k, a, b;
    cin >> t;
    while(t --)
    {
        cin >> n >> k;
        a1[0] = s[0] = 0;
        b1[0] = a2[0] = b2[0] = 1;
        int i = 0;
        while(1)
        {
//            printf("i = %d a1 = %d b1 = %d a2 = %d b2 = %d\n",i,a1[i],b1[i],a2[i],b2[i]);
            a = a1[i] + b1[i];
            b = a2[i] + b2[i];
            printf("a = %d, b = %d\n",a,b);
            if(b > n) i --;
            else if(s[i] == 0)
            {
                a1[i + 1] = a1[i];
                a2[i + 1] = a2[i];
                b1[i + 1] = a;
                b2[i + 1] = b;
//              printf("i = %d a1 = %d a2= %d b1 = %d b2 = %d\n",i,a1[i+1],a2[i+1],b1[i+1],b2[i+1]);
                s[i] ++;
                i ++;
                s[i] = 0;
            }
            else
            {
                k --;
                if(k == 0) break;
                a1[i] = a;
                a2[i] = b;
 //               printf("i = %d a1 = %d a2 = %d\n",i,a1[i],a2[i]);
                s[i] = 0;
            }
        }
        printf("%d/%d\n",a,b);
    }
    return 0;
}

### 嵌入式机开发面试及答案 #### 编译器调试选项的应用 在嵌入式机开发过程中,当遇到程序错误时,通常需要借助调试工具来进行问定位。为了使GDB等调试工具能够正常工作,在编译阶段应当加入特定的调试选项。例如,在GCC环境中应使用`-g`参数进行编译,该操作会使得最终生成的目标文件携带详细的源码映射数据,像变量名称、方法签名以及代码位置等信息均会被保留下来以便后续分析[^1]。 ```bash gcc -g main.c -o my_program ``` #### 预处理器功能理解 对于C语言而言,预处理指令扮演着重要角色,尤其是在大型项目或者跨平台移植场景下显得尤为关键。它不仅负责移除不必要的注解内容,还会依据指定路径引入必要的头文件资源,并支持通过宏定义实现条件编译逻辑控制等功能[^2]。 #### 机环境下的硬件交互方式 由于缺乏操作系统层面的支持服务,在纯硬件级编程模式即所谓的“机”状态下运行的应用往往直接操控底层物理设备完成各项任务需求。因此熟悉目标板卡上的各个组件特性变得至关重要,比如了解CPU架构特点、掌握内存管理单元的工作原理、清楚各类I/O端口的操作机制等等都是必备技能之一[^3]。 #### 实际案例解析——LED灯闪烁实验 假设现在有一个简单的应用场景:利用STM32单片机构建一个简易电路连接外部发光二极管(LED),并编写一段能够在一定时间间隔内交替点亮熄灭它的固件代码片段如下所示: ```c #include "stm32f4xx_hal.h" int main(void){ HAL_Init(); __HAL_RCC_GPIOA_CLK_ENABLE(); // Enable clock access to GPIO port A GPIO_InitTypeDef LED_Pin; LED_Pin.Pin = GPIO_PIN_5; // Select pin number PA5 as output channel for controlling the LED. LED_Pin.Mode = GPIO_MODE_OUTPUT_PP; LED_Pin.Pull = GPIO_NOPULL; LED_Pin.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &LED_Pin); while (true){ HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5); // Toggle state of selected IO line periodically. HAL_Delay(500); // Wait half a second before toggling again. } } ``` 此段代码展示了如何初始化外设配置并将选定引脚设置成推挽输出形式驱动LED元件;同时运用循环结构配合延时函数达成周期性的亮暗变化效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值