描述
给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。
比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。
输入
一行,给出2到15个两两不同且小于100的正整数。最后用0表示输入结束。
输出
一个整数,即有多少个数对满足其中一个数是另一个数的两倍。
样例输入
1 4 3 2 9 7 18 22 0
样例输出
3
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,t=0,a[105],cnt=0;
cin>>n;
while(n){
a[t]=n;
t++;
cin>>n;
}
for(int i=0;i<t-1;i++){
for(int j=i+1;j<t;j++){
if(a[i]*2==a[j]||a[j]*2==a[i]) cnt++;
}
}
printf("%d",cnt);
return 0;
}
1.我在写这一段程序时用的是万能头文件,也可以用其他的头文件(除了你别瞎搞OpenJudge是可以得满分的)
2.末尾的输出可以用cout代替
3.要注意循环的初始值和结束的数值大小
4.数组的大小自己定,不要太大也不要太小
5.希望大家多多支持,谢谢