输入输出外挂
其实输入输出外挂其实就是减少程序输入输出的时间, 因为常用的printf, scanf都要比cin, cout快,但是,有时候不用这个外挂的输出方式也会超时。而且这种输出方式对于大量数据的时候明显减少时间,其实它的快主要是因为 scanf和printf都是对缓冲区的读写操作,当程序执行的时候不会时间把要输出的内容输出到键盘上,或者说是从键盘读入的数据不会直接读到程序里,而是先读到一个叫做缓冲区的东西里面,这就大大降低了速度了,而putchar和getchar因为一次只能输出一个字符,所以它可以直接输出,所以它输出的很快,下面这段程序其实就是将本来要读取的内容拆成一个一个的字符进行读取或者输出,下面是代码的实现:
1 #include <stdio.h> 2 //注: 此外挂之适合数字的输入输出 3 //输入外挂 4 int in() 5 { 6 char ch; 7 int res = 0, flag = 0; 8 if((ch = getchar()) == '-') 9 flag = 1; 10 else if(ch >= '0' && ch <= '9') 11 res = ch -'0'; 12 while ((ch = getchar()) && ch >= '0' && ch <= '9') 13 res = res * 10 + ch - '0'; 14 return flag ? -res : res; 15 } 16 //输出外挂 17 void out(int n) 18 { 19 if(n > 9) 20 out(n / 10); 21 putchar(n % 10 + '0'); 22 } 23 int main() 24 { 25 int n = in(); 26 if(n < 0) 27 { 28 printf("-"); 29 out(-n); 30 } 31 n = n * n; 32 out(n); 33 //这里\a为发出警告声音 34 printf("\a"); 35 return 0; 36 }