優化輸入的函式
用法:
將這些程式碼貼上去你的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;
}
下一篇:For
我沒記錯的話
long int在32位元系統時占記憶體32位元組
在64位元系統時則佔占記憶體64位元組
而long long int是固定佔占記憶體64位元組
於是能儲存的整數範圍不一定相同
32位元時是 -2^31~2^31-1 約10位數
64位元時是 -2^63~2^63-1 約20位數
請問~
long long的 int型態在32位元系統下和普通long int有差嘛!?
那個你的 優化輸入
不適用於zj的a587