蓝桥杯—鲁卡斯队列(C语言解法)


题目描述

一点思考

  1. C语言中没有保留到小数点多少位的函数或者方法,所以要换一种思路
  2. 可以将分子扩大到题目要求多一位的位数,再求分数的值,然后四舍五入舍掉最后一位,与题目要求的结果相减,结果为0,则满足条件,输出即可

代码

#include
int main(){
  int i;
  long long res,a=1,b=3,tem;
  for(i=1;i<2000;i++){
    res=(10000000*a)/b;
    if(res%10>4){
      res=res/10+1;
    }
    else res=res/10;
    if(res-618034==0){
      printf("%d/%d",a,b);
      break;
    }
    tem=a+b;
    a=b;
    b=tem;
  }
  return 0;
}