问题标题: 酷町堂:3873 最多的“1”

0
1
已解决
李瑞曦
李瑞曦
高级天翼
高级天翼
#include <iostream>
using namespace std;
int a[1001],b[1001],c[1001],maxn,cnt,pos,s;
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        int d=a[i];
        while(d!=0){
            b[++s]=d%2;
            d/=2;
        }
        for(int j=1;j<=s;j++){
            if(b[j]==1)
            {
                cnt++;
            }
            c[i]=cnt;
        }
    }
    for(int i=1;i<=n;i++){
        if(c[i]>maxn){
            maxn=c[i];
            pos=a[i];
        }
    }
    cout<<pos;
    return 0;
}

 

李瑞曦在2020-05-20 18:10:51追加了内容

😔,我的样例都没过!!!

李瑞曦在2020-05-20 18:17:57追加了内容

有没有人回答啊???

顶ding

李瑞曦在2020-05-20 18:19:48追加了内容

50酷町豆啊!!!

李瑞曦在2020-05-20 18:41:07追加了内容

ding

李瑞曦在2020-05-20 18:48:42追加了内容

有人吗???

李瑞曦在2020-05-20 18:50:10追加了内容

@李素妍 @朱子尘 @酷町喵~o( =∩ω∩= )o~ 

李瑞曦在2020-05-20 19:16:08追加了内容

@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍@李素妍

李瑞曦在2020-05-20 20:03:01追加了内容

int n;
    cin>>n;
    int a[11111],maxh,maxx=0,cnt[11111]={0};
    for(int i=1;i<=n;i++){
        cin>>a[i];
        int j=a[i];
        if (j % 2 == 1) {
            cnt[i]++;
        }
        if (cnt[i]>maxx) {
            maxx = cnt[i];
            maxh = a[i];
        }
        }
    cout<<maxh;

不对啊

李瑞曦在2020-05-20 20:03:46追加了内容

@陈振轩

李瑞曦在2020-05-20 20:07:13追加了内容

对了的话我再加10个豆

李瑞曦在2020-05-20 20:09:23追加了内容

@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩@陈振轩


1
已采纳
陈振轩
陈振轩
高级光能
高级光能

不废话,上思路

定义一个存储最多1的变量(如maxx),初值为0
之后定义一个存储最多1的a[i]的值的变量(如maxh)
先输入n个十进制数。
这个核心,就在输入这里
再输入a[i]时,使用j来存a[j]的值,不然就会被在转为2进制的时候变成0,然后使用cnt数组来存第i个二进制数的'1'的数量,所以使用以下代码
if (j % 2 == 1) {
                cnt[i]++;
}
之后,需要判断cnt[i]是否大于maxx代码如下:
if (cnt[i]>maxmath) {
            maxx = cnt[i];
            maxh = a[i];
        }
    }

之后,就可以输出maxx和maxh了

 

1
0
李瑞曦
李瑞曦
高级天翼
高级天翼

😭😭😭······

李瑞曦在2020-05-20 19:42:30追加了内容

有没有人啊?????????????????????????????????????????

0
陈振轩
陈振轩
高级光能
高级光能

我给你看了一下,你的s和cnt需要在每个循环初始化为0

陈振轩在2020-05-20 20:25:05追加了内容
    for(int i=1;i<=n;i++){
        int d=a[i];
        s = 0;  //此处
        while(d!=0){
            b[++s]=d%2;
            d/=2;
        }
        cnt = 0;  //此处
        for(int j=1;j<=s;j++){
            if(b[j]==1)
            {
                cnt++;
            }
            c[i]=cnt;
        }
    }
    for(int i=1;i<=n;i++){
        if(c[i]>maxn){
            maxn=c[i];
            pos=a[i];
        }
    }

 

我要回答