0
已解决
卞福睿
中级守护
中级守护
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],b[100005],s,minn=9999999;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]<minn)
minn=a[i];
}
for(int i=1;i<=n;i++)
{
for(int j=a[i]/2;j>=minn;j-=a[i])
b[j]=1;
}
for(int i=1;i<=n;i++)
if(b[a[i]]==1)
s++;
cout<<s;
return 0;
}
请问接下来怎么修改,样例过了,但是提交不对
0
已采纳
李博然
资深守护
资深守护
你的思路没看懂
我的ac思路:
输入n
输入n个数
建立bool数组b,b[a[i]]=1;
循环遍历a数组
int j=a[i]*2, j循环到100000,每次j增加a[i]
如果 b[j]==1 sum++;
cout<<sum;
代码
定义
int sum,n;
int a[100005];
bool b[100005];
输入
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[a[i]]=1;
}
循环
for(int i=1;i<=n;i++)
{
for(int j=a[i]*2;j<=100000;j+=a[i])
{
if(b[j]){
sum++;
break;
}
}
}
输出 sum
求采纳