#25507: C++ 解題思路


eric20050107@gmail.com (Liyue-Wei)

學校 : 高雄市立高雄高級中學
編號 : 130049
來源 : [210.240.105.20]
最後登入時間 :
2024-09-18 13:09:53
a518. 12468 - Zapping -- UVa12468 | From: [1.173.216.25] | 發表日期 : 2021-05-27 16:37

根據題目先得到幾個重點:

1.轉過的台數不會超過50台

2.轉到底(99台),再轉會回到開頭(0台)

3.(-1,-1)代表結束

根據重點的解題思路如下:

1.根據重點1、2,轉超過50台,可以用減回去的 例:12 --> 98,可以用(100-98)+12

2.先把大數排在前面,方便後面計算

3.遇到(-1,-1)直接return 0

---------------------------------------------------------------------------------------

解答:

#include <iostream>

using namespace std;

int main()

{

    int i,n,t;

    while(cin >> i >> n)

    {

        if(i-n>0)

        {

            t=n;

            n=i; 

            i=t;

            if(n-i>50)

                cout << (100-n)+i << endl;

            else 

                cout << n-i << endl;

        }

 

        else if(i==(-1) && n==(-1))

            return 0;

 

        else if(i==n)

        {

            cout << "0" << endl;

        }

 

        else

        {

            if(n-i>50)

                cout << (100-n)+i << endl;

            else

                cout << n-i << endl;

        }

    }

    return 0;

}

 

 
ZeroJudge Forum