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 imes(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;
}
原文地址:https://www.cnblogs.com/QFNU-ACM/p/12597993.html