给出2到15个不同的正整数,计算在这些数里面有多少对数满足一个数是另一个数的两倍。比如给出 1 4 3 2 9 7 18 22 答案是3,因为2是1的两倍,4是2的两倍,18是9的两倍。
输入格式:
输入包括多个测试用例。每个测试用例一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束,这个数不属于那2到15个给定的正整数。输入的最后一行仅给出整数-1,这行表示测试用例的输入结束,不用进行处理。
输出格式:
对每个测试用例,输出一行,给出有多少对数满足其中一个数是另一个数的两倍。
输入样例:
1. 1 4 3 2 9 7 18 22 0 2. 2 4 8 10 0 3. 7 5 11 13 1 3 0 4. -1
输出样例:
1. 3 2. 2 3. 0
#include<bits/stdc++.h> using namespace std; int main() { int x; while(cin>>x&&x != -1) { int y; vector<int>v; v.push_back(x); while(cin>>y&&y) { v.push_back(y); } int ans = 0; for(auto p:v) for(auto p1:v) if(p1 % p == 0 && p1 / p == 2) ans ++; cout<<ans<<endl; } return 0; }