一.题目描述
输入几组数字,寻找每一组满足其中的一个数是另一个数的二倍的对数。
二.思路
输入每一组数字,挨个比较
三.代码
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>a;
vector<int>b;
int n,x,i,j;
for(;;)
{
cin>>x;
n=0;
if(x!=-1)
{
a.push_back(x);
for(;;)
{
cin>>x;
if(x!=0)
{
a.push_back(x);
}
else
break;
}
for(i=0;i<a.size();i++)
{
for(j=0;j<a.size();j++)
{
if(a[i]==2*a[j])
n++;
}
}
b.push_back(n);
n=0;
a.clear();
}
else
break;
}
for(i=0;i<b.size();i++)
{
cout<<b[i]<<endl;
}
return 0;
}
四.这道题虽然思路简单,我也AC了,可我知道我这样子写做了很多重复工作,不简洁,应该再琢磨改改。已经判断的就不用再判断了。
所以可以让前一个数字跟后面比较时二倍的,二分之一的都行,然后j=i,到最后,这样就简洁很多。