1. 程式人生 > >讀入優化與輸出優化

讀入優化與輸出優化

讀入優化程式碼:

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讀取字元的速度比較快