小米 OJ 編程比賽 02 月常規賽 (Carryon 數數字)

題目大意:

給出l,r兩個數字,求出l r之間每個數的16進製表示然後再將它們連接起來形成一個數,再將這個數轉換成10進制,最後將這個數用15求餘,輸出結果!

思路:

這題考察了對基本數學知識的考察能力,仔細觀察不難發現規律,因爲是用15求餘,所以很容易就想到從求餘來着手,因爲數據比較大,所以直接計算肯定TLE,具體思路看代碼,很簡單:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
    LL L,R;
    cin>>L>>R;
    int l,r;
    l=L%15;
    r=R%15;
    int ans=l;
    for(int i=l+1;i<100;i++)
    {
        int temp=i%15;
        if(temp==r)
        {
            ans=ans+temp;
            break;
        }
        else
        {
            ans=ans+temp;
        }
    }
    ans = ans%15;
    cout<<ans;
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章