1
已解决
胡家翊
高级守护
高级守护
#include<bits/stdc++.h>
using namespace std;
int a[100];
void gb(int n,m){
int y=max(n,m);
while(1){
if(i%n==0&&i%m==0){
cout<<i;
break;
}
i++;
}
}
int main()
{
long long n,m,x=1;
cin>>n;
int i=0,t=n;
while(n){
a[++i]=t%2;
t/=2;
}
for(int j=i;j>=1;j--){
m+=a[j]*x;
x*=10;
}
gb(n,m);
return 0;
}
哪错了,求大佬帮忙 QAQ
0
1
陈振轩
高级光能
高级光能
emmm
看不懂你发的,我来上思路吧
定义一个存储最多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
1
1
李瑞曦
高级天翼
高级天翼
我也问了:https://wenda.codingtang.com/questions/8242/,问题已解决,可以参考一下,如果不想采纳我的话,可以采纳陈振轩的,因为就是TA回答的,而且是对的哦。
0