好奇怪的一道题目,在编译器里跑得好好的,一提交就错。
「求助大佬帮看看这道算法题吧!」
小M得到了n个互不相同的正整数ai,在这n个数中,某个数称为无倍数数当且仅当其他的数都不是它的倍数。请你帮小M找出这n个数中所有的无倍数数,并以升序输出。
https://gw-c.nowcoder.com/api/sparta/jump/link?link=https%3A%2F%2Fwww.nowcoder.com%2Fpractice%2F646a6ad577f64e1cb84a33f650e41ef5
全部评论
我试了一下提交,一直报错提示浮点错误,遇到的坑:虽然题目中说输入n个正整数,但还是需要对输入数据的有效性>0进行判断才行
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n=0;
vector<int> res,RES;
cin>>n;
while(n--)
{
int ai;
cin>>ai;
if(ai>0)
res.push_back(ai);
}
for(int i=0;i<res.size();i++)
{
int j=0;
for(;j<res.size();j++)
{
if(((res[j]/res[i]) * res[i]) == res[j] && j != i) break;
}
if(j == res.size())
RES.push_back(res[i]);
}
for(int i=0;i<RES.size();i++)
for(int j=0;j<RES.size()-i-1;j++)
{
if(RES[j]>RES[j+1])
{
int temp = RES[j];
RES[j] = RES[j+1];
RES[j+1] = temp;
}
}
for(int i=0;i<RES.size();i++)
cout<<RES[i]<<" ";
return 0;
}
相关推荐