爱奇艺,奇异数,学渣想知道自己错在了哪里,谢谢!

#include<stdio.h>
int start(int l);
int start(int l)
{
 if(l>=10)
  return l;
 else return 10;
}
int main()
{
 int L,R,a,b,i,count=0;
 scanf("%d%d",&L,&R);
 for(i=start(L);i<=R;i++){
  a=i%10;
  b=(i-a)%100/10;
  if(a==b)
   count++;
 }
 printf("%d\n",count);
 return 0;
}

#爱奇艺#
全部评论
用0-r包含的个数减去0-l包含的个数,每个100包含10个,先算n有多少个100,再算n的十位和个位,再加起来,如果l是奇艺数再加1。
点赞 回复 分享
发布于 2017-09-11 07:52
代码没问题,的确是超时的原因
点赞 回复 分享
发布于 2017-09-11 00:33
#include <iostream> using namespace std; typedef long long LL; //int 支持不了10^12 LL work(LL a,LL b)  //返回的值也得是LL型的 {      return (b/100*10+b%100/11)-(a/100*10+(a-1)%100/11); } int main() {      LL a,b;      cin>>a>>b;      cout<<work(a,b)<<endl;   return 0; }
点赞 回复 分享
发布于 2017-12-07 21:15
int存不下,改成long 后超时。 实际上奇异数是每100有10个,比如说1~100,11,22,33,44,55,66,77,88,99,100. 所以可以对l和r分别除100,结果乘以10,余数再用你的方法做。 最后做个差
点赞 回复 分享
发布于 2017-09-11 08:52
首先...int存不了1e12,其次...您这代码O(n)的稳超时...
点赞 回复 分享
发布于 2017-09-11 08:21
我加了long之后到了60%
点赞 回复 分享
发布于 2017-09-10 22:58
超时了吧?
点赞 回复 分享
发布于 2017-09-10 22:39

相关推荐

08-27 21:03
已编辑
西南石油大学 Java
冷花幽露:大概率是了,京东面试就是这样。我上周一面也是20多分钟,面试官问的很刁钻的问题也答上来了,面完过了几天还是没推进,泡池子,昨天一看挂了。如果一面完第2天没有收到2面邀请,基本上不用抱希望了。如果你的bg是985,面试流程也是和我们一样,20多分钟,唯一区别就是面完他们会很快收到二面邮件,而不像我们泡池子然后挂掉
点赞 评论 收藏
分享
做个有文化的流氓:Offer收割机
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务