讀入優化與輸出優化
阿新 • • 發佈:2019-02-06
讀入優化程式碼:
int read()
{
int sym = 1;//符號處理
int sum = 0;//注意好型別,防止爆int
char ch = getchar();//讀入第一個字元
while(ch < '0' || ch > '9')//如果不是數字
{
if(ch == '-')//如果讀到了符號
sym = -1;//說明該數是負數
ch = getchar();//讀入第二個字元
}
while('0' <= ch && ch <= '9')//如果是數字,就進入迴圈,否則結束迴圈
{
sum = sum * 10 + ch - '0';//乘10很好理解,而ch - '0'是字元ch對應的數字的值
ch = getchar();//讀入下一個字元
}
return sym * sum;
}
輸出優化程式碼:
void print(int x)
{
if(x < 0)//如果x是負數
{
putchar('-');
x = -x;//變成整數
}
if(x > 9)//如果x至少是兩位數
print(x / 10);//遞迴地對剩餘位進行操作
putchar (x % 10 + '0');//回溯時,輸出個位字元
return;
}
解決方法:
讀入速度:優讀>scanf>cin
讀入優化只針對整數
原理是getchar讀取字元的速度比較快