11 条题解

  • 0
    @ 2023-10-19 20:51:21

    还是有点意思的找规律问题

    #include<iostream>
    using namespace std;
    int main()
    {
        int m;
        cin >> m;
        while(m--)
        {
            int m;
            cin >> m;
            int sum = 0,num = 0,k = 0;
            for(int i = 1 ; i < 1000 ; i++)
            {
                sum += i;
                num += i-1;
                if(m >= num&&m <= sum)
                {
                    k = i;
                    break;
                }
            }
            int cnt = m - num;
            int fm,fz;
            if(k % 2 == 1)
            {
                for(int i = k , j = 1 ; ; i-- , j++)
                {
                    if(j == cnt)
                    {
                        fz = i;
                        fm = j;
                        break;
                    }   
                }
            }
            else if(k % 2 == 0)
            {
                for(int i = 1 ,j = k ; ; i++ , j--)
                {
                    if(i == cnt)
                    {
                        fz = i;
                        fm = j;
                        break;
                    }
                }
            }
            cout << fz << "/" << fm << endl;
        }
        return 0;
    }
    
    

    信息

    ID
    155
    时间
    3000ms
    内存
    128MiB
    难度
    3
    标签
    (无)
    递交数
    366
    已通过
    194
    上传者