• 输入超时有时候用long long 会超时 用int 不会


    改章节笔者在青岛逛街的时候突然想到的...今天就有想写几篇关于输入超时的笔记,所以回家到之后就奋笔疾书的写出来发表了

        有时候用long long  会超时 用int  不会

        有所 有时候对于1000 000 000 这样的据数   如果没有必要用到  long long  或者 __int64  就不要用他们

        int 32 位    2的32次方 于等4294967296   能示表的围范还是很大的  4*10^9

        面下结合一个目题看下  (曾到碰过好几个用 long long 超时的了)

        

    • [1360] Divide Exactly

        

    • 时光制约: 1000 ms 存内制约: 65535 K

        

    • 问题描述

        

    • 3, 7, 15, 31, 63, 127...
      Can you find the law? OK, just 2 ^ N -1.
      So, question follows. If I give you a integer N, can you find the minimum M makes (2 ^ N - 1) % (2 ^ M - 1) = 0? N and M is at least 2.

        

    • 输入

        

    • Input until EOF.
      Each test contains one integer N (2 <= N <= 1,100,000,000).

        

    • 输出

        

    • One integer M will be the output.

        

    • 样例输入
    • 2
      3
      
    • 样例输出
    • 2
      3
      
    • 提示
    • 起源
    • Hungar
        每日一道理
    微笑,是春天里的一丝新绿,是秋日里的一缕阳光,是骄阳下的一片浓荫,是冬雪中的一株梅红……微笑着去面对吧,你会感到人生是那样的温馨与甜蜜!
    • 操纵

      http://acm.nbut.cn/Problem/view.xhtml?id=1360 

      问输入n   请找出小最的m满意 

      (2 ^ N - 1) % (2 ^ M - 1) = 0 

             

      路思 :    打出1--60的可以看出m就是n的小最的因子

      对于是ac的程序

      #include <iostream>
      #include<stdio.h>
      #include<math.h>
      using namespace std;
        
      int main()
      {
          int n;
          while(~scanf("%d", &n))
          {
              if(n % 2 == 0)
              {
                  printf("2\n");
                  continue;
              }
              int p = 1;
              int x =sqrt(1.0 * n);
              for(int i = 3; i <= x; i += 2)
              {
                  if(n % i == 0)
                  {
                      p = i;
                      break;
                  }
              }
              if(p == 1)printf("%d\n", n);
              else printf("%d\n", p);
          }
            
          return 0;
      }
      


      然而 这样将n按照long  long情势输入却会超时  

      #include <iostream>
      #include<stdio.h>
      #include<math.h>
      using namespace std;
      #define ll long long
      int main()
      {
          ll n;
          while(~scanf("%lld", &n))
          {
              if(n % 2 == 0)
              {
                  printf("2\n");
                  continue;
              }
              int p = 1;
              int x =sqrt(1.0 * n);
              for(int i = 3; i <= x; i += 2)
              {
                  if(n % i == 0)
                  {
                      p = i;
                      break;
                  }
              }
              if(p == 1)printf("%lld\n", n);
              else printf("%d\n", p);
          }
            
          return 0;
      }
      


       

    文章结束给大家分享下程序员的一些笑话语录: 刹车失灵
    有一个物理学家,工程师和一个程序员驾驶着一辆汽车行驶在阿尔卑斯山脉 上,在下山的时候,忽然,汽车的刹车失灵了,汽车无法控制地向下冲去, 眼看前面就是一个悬崖峭壁,但是很幸运的是在这个悬崖的前面有一些小树 让他们的汽车停了下来, 而没有掉下山去。 三个惊魂未定地从车里爬了出来。
    物理学家说, “我觉得我们应该建立一个模型来模拟在下山过程中刹车片在高 温情况下失灵的情形”。
    工程师说, “我在车的后备厢来有个扳手, 要不我们把车拆开看看到底是什么 原因”。
    程序员说,“为什么我们不找个相同的车再来一次以重现这个问题呢?”

  • 相关阅读:
    输入任意十进制数字,转换为任意进制表示
    Integer 原码解读
    Java 中位移运算符 >>,>>>,<<
    解读源码中的问题
    HashMap 源码解读
    js:插入节点appendChild insertBefore使用方法
    冒泡排序实例
    nodejs学习笔记(2)--Express下安装模版引擎ejs
    nodejs学习笔记(1)--express安装问题:express不是内部也或者外部的命令解决方案
    Jquery取得iframe中元素的几种方法
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3057244.html
Copyright © 2020-2023  润新知