百练OJ:2807:两倍

来源:互联网 发布:即时通讯软件源码 编辑:程序博客网 时间:2024/05/17 08:02

题目链接:2807:两倍

描述:给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。
输入:一行,给出2到15个两两不同且小于100的正整数。最后用0表示输入结束。
输出:一个整数,即有多少个数对满足其中一个数是另一个数的两倍。

解题思路:

由于数据的量不大,所以采用穷举的方法可以解题。秩序列举出所有的组合,数出其中的满足2倍关系的组数就可以了。

代码:

#include <iostream>using namespace std;int main(){    int list[15];    int i=0;    while(1){        int a;        cin>>a;        if(a==0)break;        list[i]=a;        i++;    }    int counts=0;    for(int j=0;j<i;j++){        for(int k=0;k<i;k++){            if(list[j]==2*list[k]){                counts++;            }        }    }    cout<< counts;    return 0;}



原创粉丝点击