位数求和(利用回溯法)

位数求和

https://ac.nowcoder.com/acm/contest/6220/A

链接:https://ac.nowcoder.com/acm/contest/6220/A
牛牛想知道所有的长度为n的数中,各个位上的数字之和为m的这些数的和是多少呢。给定n和m,求这些数的和。
利用回溯法

/**
 * 返回这样的数之和
 * @param n int整型 数的长度
 * @param m int整型 各个为之和
 * @return long长整型
 */
function sum( n ,  m ) {
  // write code here
  let path = []
  let first = true
  let res = 0;
  let check = (num)=>{
      let ans = 0;
      for(let i=0;i<num.length;i++){
          ans+=num[i]
      }
      if(ans==m){
          return true;
      }else{
          return false;
      }
  }
  let backtrack = () => {
      if(path.length==n){
        let flag = check([...path])
        if(flag){
          res+=parseInt(path.join(''))
          return
        }
      }else if(path.length>n){
        return
      }
      for(let i=0;i<10;i++){
          if(first){
              first=false;
              continue;
          }
          path.push(i);
          backtrack();
          path.pop()
      }
  }
  backtrack();
  return res;
}
module.exports = {
    sum : sum
};
全部评论

相关推荐

万一背调了怎么办,这不就是毁了一个大学生嘛&nbsp;这帮人为了挣钱真是没有底线了
程序员小白条:最近牛客看到很多,还有牛友跟我私信,团伙组织了,属于是
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 18:03
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务