题解:
枚举算法入门题
两个枚举变量,i和j
从图中分析可知需要枚举这些量,两个循环完成,需要一个中间数组a保存这个数列。
枚举范围,这样遍历不重不漏:
第一个外部循环i从0到n-1
第二个内部循环j从i+1到n
判断两数是否相等:
a[i]2==a[j]||a[i]==2a[j]
代码:
#include<iostream>
using namespace std;
int main(){
int a[20],n=0,t,num=0;
cin>>t;
while(t!=0)
{
a[n]=t;
n++;
cin>>t;
}
for(int i=0;i<n-1;i++)
{
//cout<<"i:"<<a[i]<<"\t";
for(int j=i+1;j<n;j++)
{
//cout<<"i:"<<a[i]<<"\t";
//cout<<"j:"<<a[j]<<"\t";
if(2*a[i]==a[j] || a[i]==a[j]*2)
{
num++;
}
//cout<<"num:"<<num<<"\t";
//cout<<endl;
}
}
cout<<num;
return 0;
}