7-1 寻找250

图片来自pta刷题网站
对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。
输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。
输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。
输入样例:
888 666 123 -233 250 13 250 -222
输出样例:
5



#include<iostream>
using namespace std;
main()
{
int num,i;
for(i=1;scanf("%d",&num);++i)
{
  if(num==250)
   break;
}
printf("%d",i); 
return 0;
}

在这里插入图片描述
我们应该都知道在很多编译器上,对printf和scanf都进行了优化,尤其是在输入输出数据量大的时候,在运行时间和所占内存方面都会比cin和cout效率要高不少,但是如果有人偏偏喜欢用cin和cout,怎么解决这个问题呢?
方法:在读写前添加这条语句

std::ios::sync_with_stdio(false);
注意用这个语句后cin/cout和scanf/printf不要再同时使用,否则很可能出现混乱。
以下是用cin和cout后的代码

#include<iostream>
using namespace std;
main()
{
std::ios::sync_with_stdio(false);
int num,i;
for(i=0;cin>>n;++i)
{
  if(num==250)
   break;
}
cout<<i;
return 0;
}

使用该方法后,性能要高不少,但是并不是很稳定,使用时间和内存不稳定
在这里插入图片描述
所以在卡时间和内存比较紧的题,推荐使用printf和scanf

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值