• 征战蓝桥 —— 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;
    }
    
  • 相关阅读:
    ExtJs错误总结
    Java中的基本类型和引用类型(未完)
    【转】JavaScript中的全局变量与局部变量
    地理信息技术在现场项目的应用浅析
    vector的二分查找算法
    Linux命令
    封装 libmemcached
    Linux + boost + libmemcached + jsoncpp + mysql 配置
    SQL字符串处理函数大全(转)
    vector 排序方法sort的使用
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338964.html
Copyright © 2020-2023  润新知