【Cantor表】蒟蒻題解

原題:傳送門ios

(上圖摘自網站OpenJudge - NOI題庫2.1 Cantor表

本蒟蒻的題解,讓大神們見笑了!

首先,進行找規律。

你們能夠發現:

  • 一、當分子是一的時候,且分子和分母的和是偶數時,分母會加一。
  • 二、當分母是一的時候,且分子和分母的和是奇數時,分子會加一。
  • 三、除了以上狀況外,分子和分母的和是偶數時,則分母減一,分子加一;分子和分母的和是奇數時,分母加一,分子減一。

OK,規律找完了,接下來就是代碼上的實現了。

咳咳,上代碼:

#include<iostream>
using namespace std;
int n,p=1,q=1;
int main()
{
    cin>>n;
    for(int i=1;i<n;i++)
    {
        if((p+q)%2==0&&p==1)
            q++;
        else if((p+q)%2==1&&q==1)
            p++;
        else if((p+q)%2==0)
            p--,q++;
        else if((p+q)%2==1)
            p++,q--;
    }
    cout<<p<<"/"<<q;
    return 0;
}
相關文章
相關標籤/搜索