#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的变量(如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了
我给你看了一下,你的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];
}
}