题解 | #数组分组#

数组分组

https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86

#include <iostream>
using namespace std;
int ar[51];int n,n1,n2;//用n1和n2来收录两组数据
bool dg(int index,int r1,int r2){
    if(index==n)return r1==r2;//如果全部遍历完了,判断收录的两组数据是否相等
    if(ar[index]==0)return dg(index+1,r1,r2);//如果是0,收录到哪个都一样,免得走两次递归
    return dg(index+1,r1+ar[index],r2)||dg(index+1,r1,r2+ar[index]);//收录到r1或者r2其中一个能满足相等即可。
}//递归函数
int main() {
    cin>>n;
    for(int i=0;i<n;i++){//输入数据
        scanf("%d",&ar[i]);
        if(ar[i]%5==0){
            n1+=ar[i];//如果是5的倍数收录到n1
            ar[i]=0;//置为0,防止影响后续递归的判断
        }else if(ar[i]%3==0){
            n2+=ar[i];//如果是3的倍数收录到n2
            ar[i]=0;
        }
    }
    cout<<(dg(0,n1,n2)?"true":"false");//进入递归
}

全部评论

相关推荐

07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
07-11 13:16
湖南工学院 Java
坚定的芭乐反对画饼_...:谁也不知道,毕竟现在的互联网和十年前已经完全不同了,谁都无法预测未来
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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