深夜切题——Doubles

来源:互联网 发布:衣柜实木多层板材知乎 编辑:程序博客网 时间:2024/05/16 17:20

Doubles
时间限制:1000MS  内存限制:65535K


Description
As part of an arithmetic competency program, your students will be given randomly generated lists of 
from 2 to 15 unique positive integers and asked to determine how many items in each list are twice some 
other item in the same list. You will need a program to help you with the grading. This program should 
be able to scan the lists and output the correct answer for each one. For example, given the list 
1 4 3 2 9 7 18 22


your program should answer 3, as 2 is twice 1, 4 is twice 2, and 18 is twice 9. 
输入格式
The input file will consist of one or more lists of numbers. There will be one list of numbers per line. Each list 
will contain from 2 to 15 unique positive integers. No integer will be larger than 99. Each line will be terminated
with the integer 0, which is not considered part of the list. A line with the single number -1 will mark the end of 
the file. The example input below shows 3 separate lists. Some lists may not contain any doubles.


输出格式
The output will consist of one line per input list, containing a count of the items that are double some other item.
输入样例
1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
-1 


输出样例
3
2
0

#include <cstdio>#include <cstring>#include <cmath>#include <queue>#include <vector>#include <string>#include <stack>#include <set>#include <map>#include <iostream>#include <bitset>#include <algorithm>using namespace std;int main() {    int n[20],one,tiwce[20];    while(scanf("%d",&one),one>0){        int i=0,c=0;        n[i]=one;tiwce[i++]=one*2;        while(scanf("%d",&one),one){            n[i]=one;tiwce[i++]=one*2;        }        sort(n,n+i);sort(tiwce,tiwce+i);        for(int x=1;x<i;++x)        {            for(int y=0;y<i;++y)                if(n[x]==tiwce[y])++c;        }        printf("%d\n",c);    }    return 0;}

为升级数,特切水题一道。

0 0
原创粉丝点击