读入输出优化

只能读入数字,不过这个比scanf快很多,并且对于 long long 类型用I64d,还是用 lld 完全忽略,不需要靠考虑在windows,或Linux系统的差别,效率很高!!!

1 int read()
2 {
3     int x=0,f=1;char ch=getchar();
4     while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
5     while(ch>='0'&& ch<='9'){x=x*10+ch-'0';ch=getchar();}//x=(x<<3)+(x<<1)+ch-'0';
6     return x*f;
7 }

 

这是 long long 类型读入优化(只要改变函数的类型和x的类型就好了)

1 long long read()
2 {
3     long long x=0,f=1;char ch=getchar();
4     while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
5     while(ch>='0'&& ch<='9'){x=x*10+ch-'0';ch=getchar();}
6     return x*f;
7 }

 cin/cout读入优化

 ios::sync_with_stdio(false); 

输出优化,递归调用

1 void write(int x)
2 {
3     if(x<0) putchar('-'),x=-x;
4     if(x>9) write(x/10);
5     putchar(x%10+'0');
6 }

输出优化

1 void write(int x)  
2 {  
3     int num = 0; char c[15];
4     while(x) c[++num] = (x%10)+48, x /= 10;
5     while(num) putchar(c[num--]);
6     putchar('\n'); 
7 }

 

posted @ 2017-05-21 17:37  MJT12044  阅读(218)  评论(0编辑  收藏  举报