3.30 每日一题题解

Vladik and fractions

涉及知识点:

  • 数学/构造

solution:

  • 本题解法不唯一,这里只给出一种比较简单的构造方法
  • 先考虑不可能的情况,n = 1,无解,因为他们能组成的最大值 = \(\frac{1}{1}+\)\(\frac{1}{2}+\)\(\frac{1}{3}\),明显小于2
  • 接下来考虑构造,首先设x = n
  • 则有\(\frac{1}{y}+\)\(\frac{1}{z}\)\(=\frac{1}{n}\)
  • 然后根据\(\frac{1}{n+1}+\frac{1}{n \times(n+1)}=\frac{1}{n}\)
  • 我们可以令y = n + 1, z = n×(n + 1),这样我们就构造出来了正确的结果

std:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
    int n;
    cin>>n;
    if(n == 1){
        cout<<"-1"<<endl;
        return 0;
    }
    cout<<n<<" "<<n+1<<" "<<n*(n+1)<<endl;
    return 0;
}
posted @ 2020-03-30 13:18  QFNU-ACM  阅读(80)  评论(0编辑  收藏  举报