zoukankan      html  css  js  c++  java
  • 九数组分数|2015年蓝桥杯B组题解析第五题-fishers

    九数组分数

    1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?

    下面的程序实现了该功能,请填写划线部分缺失的代码。

    #include <stdio.h>
    
    void test(int x[])
    {
    int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
    int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];
    
    if(a*3==b) printf("%d / %d
    ", a, b);
    }
    
    void f(int x[], int k)
    {
    int i,t;
    if(k>=9){
    test(x);
    return;
    }
    
    for(i=k; i<9; i++){
    {t=x[k]; x[k]=x[i]; x[i]=t;}
    f(x,k+1);
    _____________________________________________ // 填空处
    }
    }
    
    int main()
    {
    int x[] = {1,2,3,4,5,6,7,8,9};
    f(x,0); 
    return 0;
    }
    

    答案:{ t=x[k]; x[k]=x[i]; x[i]=t;}

    思路:考察递归回溯(交换回溯法),每次把k~9这些数放到当前的第一位(第k位),dfs搜索下一个位置,搜索后回复原位(交换回来)

    代码填空题
    运行结果比对:
    5832/17496
    5823/17469

  • 相关阅读:
    java中的异常类
    Mysql--JDBC的基础
    eclipse使用断言
    idea中使用断言
    java的null
    array,集合(collection),集合(list)的区别
    命名管道FIFO
    标准库中的管道操作
    现代进程间的通信方式--管道
    广播编程之发送者
  • 原文地址:https://www.cnblogs.com/fisherss/p/10300114.html
Copyright © 2011-2022 走看看