zoukankan      html  css  js  c++  java
  • POJ--1416

    #include <stdio.h>
    #include <stdlib.h>
    
    int data[5]={};//代表有没有切割的数组
    int input=12346;//输入的要被切割的数字
    int output[5]={};//切完输出的数组成的数组
    int a[5]={};
    int count=0;
    int final;
    int target=50;
    int best[5]={};//用于存储最优的切割方法
    int max=100;
    bool findpath = 0;
    
    //计算目标和最终和的差值
    void handle(int final,int target){
        int chazhi;
        chazhi = target - final;
        if(chazhi<max){
           max = chazhi;
        }
        //把最优的切割方法存储起来
        for(int i=0;i<5;i++){
            best[i] = data[i];
        }
    }
    void func(int step){
        if(step==5) {//先假设数字有五位
        //计算
            findpath =1;
          //1==12345/(data[0]*10*(位数-1))
            for(int i=4;i>0;i--){
                if(data[i]==1)//代表需要切割
                {
                        int num=10;
                        for(int j=0;j<i;j++){
                           num =num*10;
                        }
                        a[count] = input%num;//余数就是切割后面的数
                        input = input/num;
                        count ++;
                }
            }
    
            for(int k=0;k<count;k++)
            {
                final += a[k];
            }
            handle(final,target);
            return;
        }
        data[step] = 0;
        func(step+1);
    
        data[step] = 1;
        func(step+1);
     
    }
    int main(){
      func(0);
      printf("%d",findpath);
      for(int i=0;i<5;i++){
          printf("%d
    ",best[i]);
      }
      system("pause");
    }
    大多数想法要么平庸,要么更糟糕,这很大程度上因为绝妙的想法难得一见,而且他们还要在我们身边这个充斥了各种恶俗的所谓常识的环境中孕育生长。
  • 相关阅读:
    AAC音频格式分析与解码
    SIGPIPE信号
    可变参数的宏定义
    Makefile条件编译debug版和release版
    Linux下查看内存使用情况
    Trie树 字典树
    C/C++随机数生成 rand() srand()
    关于编译安装Thrift找不到libthriftnb.a的问题
    Linux下使用popen()执行shell命令
    WebSocket协议分析
  • 原文地址:https://www.cnblogs.com/linux0537/p/6086331.html
Copyright © 2011-2022 走看看