zoukankan      html  css  js  c++  java
  • 24点 c语言

    //判断4个数能否组成24点 
    #include <stdio.h>
    #include <math.h>
    
    
    int n; 
    int t; 
    double a[20];
    int cnt;
    double stack[100];
    int stack_top;
    
    void play(int num){
        if(num>n){
            if(stack_top==1){
                if(fabs(stack[0]-24.0)<1e-7){
                    cnt=1;
                    return ;
                }
            }
            else{
                double t2=stack[--stack_top];
                double t1=stack[--stack_top];
                
                stack[stack_top++]=t1+t2;
                play(num);
                --stack_top;
                
                stack[stack_top++]=t1-t2;
                play(num);
                --stack_top;
                
                stack[stack_top++]=t1*t2;
                play(num);
                --stack_top;
                
                stack[stack_top++]=t1/t2;
                play(num);
                --stack_top;
                
                stack[stack_top++]=t1;
                stack[stack_top++]=t2;
            }
            return ;
        }
        stack[stack_top++]=a[num];
        play(num+1);
        --stack_top;
        
        if(stack_top>=2){
            double t2=stack[--stack_top];
            double t1=stack[--stack_top];
            
            stack[stack_top++]=t1+t2;
            play(num);
            --stack_top;
            
            stack[stack_top++]=t1-t2;
            play(num);
            --stack_top;
            
            stack[stack_top++]=t1*t2;
            play(num);
            --stack_top;
            
            stack[stack_top++]=t1/t2;
            play(num);
            --stack_top;
            
            stack[stack_top++]=t1;
            stack[stack_top++]=t2;
        }
        
    }
    
    int main(){
    	
        scanf("%d %d",&n,&t);
        while(t--){
            for(int i=1;i<=n;++i) scanf("%lf",a+i);
            cnt=0;
            stack_top=0;
            play(1);
            if(cnt){
    		 puts("可以组成");
    	    }
            else  {
    		 puts("不可以组成");
    	    }
        }
        return 0;
    }
    

      

  • 相关阅读:
    HDU 4870 Rating(高斯消元 )
    iOS开发者账号详细介绍
    iOS之Block
    CocoaPods 安装和使用
    搭建自己的局域网服务器
    MarkDown语法收集
    正则表达式参考表
    iOS企业级应用打包与部署
    iOS开发之代码加载方式进入APP的界面
    shell脚本小Demo
  • 原文地址:https://www.cnblogs.com/Gloid/p/9379150.html
Copyright © 2011-2022 走看看