24h購物| | PChome| 登入
2009-06-21 19:33:36| 人氣7,056| 回應3 | 上一篇 | 下一篇

優化輸入的函式

推薦 0 收藏 0 轉貼0 訂閱站台

用法:

將這些程式碼貼上去你的code

再指定m=input();即可

m是你想(型態自行修改)

使用注意:

1.請別放在最外層的輸入(如果要一直輸入的話),因為沒辦法判斷EOF結尾
2.型態請自行修改

NPSC 之類的超大筆輸入 優化之後可加快很多唷!!

EX:

int t,m;
while(scanf("%d",&t)==1)
  while(t--)
    {
     
m=input();
      printf("%d\n",m);
    }

/************************/

正整數

/************************/

long long int input()  
{  
  char cha;  
  unsigned long long int x=0;  
  while(cha=getchar())  
     if(cha!=' '&&cha!='\n') break;  
  x=cha-48;  
  while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
      x=x*10+cha-48;  
    }  
    return x;  
}

/*************************/

±整數

/************************/

long long int input()  
{  
  char cha;  
  unsigned long long int x=0,flag=1;  
  while(cha=getchar())  
     if(cha!=' '&&cha!='\n') break;  
   if(cha!='-')
       x=x*10+cha-48; 
   else flag=-1;  
  while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
      x=x*10+cha-48;  
    }  
    return x*flag;  
}

/************************/

±浮點數

/************************/

double point()
{
  char cha;
  double poi=0,num=1;
    while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
     num=num/10;
     poi=poi+(cha-48)*num;
    }  
    return poi;
}        
double input()  
{  
  char cha,flag=1;  
  double x=0;  
  while(cha=getchar())  
     if(cha!=' '&&cha!='\n') break;  
   if(cha!='-')
       x=x*10+cha-48; 
   else flag=-1;
  while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
     if(cha=='.')
      {
        x=x+point();
        break;
      }
       x=x*10+cha-48; 
    }  
    return x*flag;
}

台長: 來源不明
人氣(7,056) | 回應(3)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 算是技巧 |
此分類下一篇:For

路人甲
請問~
long long的 int型態在32位元系統下和普通long int有差嘛!?
2010-02-12 09:15:51
鴨子
我沒記錯的話

long int在32位元系統時占記憶體32位元組
在64位元系統時則佔占記憶體64位元組
而long long int是固定佔占記憶體64位元組

於是能儲存的整數範圍不一定相同
32位元時是 -2^31~2^31-1 約10位數
64位元時是 -2^63~2^63-1 約20位數
2010-07-01 00:02:03
路人乙
那個你的 優化輸入
不適用於zj的a587
2013-07-28 22:58:04
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文