码迷,mamicode.com
首页 > 其他好文 > 详细

1416

时间:2016-11-21 18:53:37      阅读:839      评论:0      收藏:0      [点我收藏+]

标签:输出   output   get   sys   targe   class   void   tput   bsp   

#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\n",best[i]);
  }
  system("pause");
}

 

1416

标签:输出   output   get   sys   targe   class   void   tput   bsp   

原文地址:http://www.cnblogs.com/linux0537/p/6086331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!