• 征战蓝桥 —— 2015年第六届 —— C/C++A组第5题——九数组分数


    九数组分数

    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\n", 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;
    }
    

    注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。

    代码

    #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\n", 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);
            {t=x[k]; x[k]=x[i]; x[i]=t;}//回溯,恢复到下探之前的状态
    //        _____________________________________________ // 填空处
        }
    }
    
    int main()
    {
        int x[] = {1,2,3,4,5,6,7,8,9};
        f(x,0);
        return 0;
    }
    
  • 相关阅读:
    细说java平台日志组件
    linux远程执行命令
    linux命令 common 文件比较
    Linux Shell脚本编程--cut命令
    linux sort命令
    shell中if判断一个变量为空
    linux shell if参数
    wc命令
    date 命令
    let 与 expr Shell运算比较 let强强胜出
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338965.html
Copyright © 2020-2023  润新知