acm书中题目 m-13

题目大概:

一行输入多个数字,判断有几对二倍数(一个数是另一个的二倍)。-1结束输入。思路

思路:

建立一个向量,输入数据,并且把向量中的数据存储到集合中。从第一个开始,用count(2*需判断的数),来判断。

感想:

用集合存储数据会自动排好序,可以让我们更方便的处理数据,减少了处理数据的过程。

代码:

#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
#include <string>
using namespace std ;

int main ()
{
for (;;)
{

int b [ 15 ];
int k = 0 ,j = 0 ;
vector < int >a ;
set < int >aa ;
for ( int i = 0 ;;i ++)
{cin >>b [i ];
if (b [i ]==- 1 ) {j = 1 ; break ; }
if (b [i ]== 0 ) break ;
a . push_back (b [i ]);
aa . insert (b [i ]);
}
if (j ) break ;
for ( int t = 0 ;t <aa . size ();t ++)
{ int c = 0 ;
    c =aa . count ( 2 *a [t ]);

if (c ) {k ++; }
}
cout <<k <<endl ;



}
return 0 ;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值