题解 | #质数因子#

称砝码

http://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c

Scan接收整数和Scanf("%d",&i)接收整数有什么区别?
用Scanf有一个用例无法通过:
10
2000 1999 1998 1997 1996 1995 1994 1993 1992 1991 
10 10 10 10 10 10 10 10 10 10 


package main
import(
    "fmt"
)
func main(){
    for{
        N:=0
        _,err:=fmt.Scanln(&N)
        if (err != nil || N<=0){
            break
        }
        //fmt.Println(N)
        var weightArray [100]int
        var countArray [100]int
        for i:=0;i<N;i++{
             fmt.Scanf("%d",&weightArray[i])
        }
        for i:=0;i<N;i++{
             fmt.Scanf("%d",&countArray[i])
        }
        count:=CalCount(weightArray[0:N],countArray[0:N])
        if (count==1){
            fmt.Println("==>",N)
        }else if (count==12091){
            fmt.Println("==>",N)
        }
        fmt.Println(count)
    }
}
func CalCount(weightArray []int,countWeigtArray []int )int{
    dic:=make(map[int]bool,0)
    dic[0]=true
    for i:=0;i<len(weightArray);i++{
        for j:=0;j<countWeigtArray[i];j++{
            tempDic:=copyMap(dic)
            for k,_:=range tempDic{
                dic[k+weightArray[i]]=true
            }
        }
    }
    
    return len(dic)
}
func copyMap(dic map[int]bool)map[int]bool{
    tempDic:=make(map[int]bool,0)
    for k,v:=range dic{
        tempDic[k]=v
    }
    return tempDic
}


全部评论
因为用例有问题 多了一个空格
点赞 回复 分享
发布于 01-03 14:30 四川

相关推荐

感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务