Ejemplo 7-3 Fraccionamiento (¿fracciones otra vez?, UVa 10976)

Bienvenido a visitar mi directorio de solución de problemas de Uva https://blog.csdn.net/richenyunqi/article/details/81149109

Descripción del Título

Ejemplo 7-3 ¡¿Fracciones otra vez ?! (UVa 10976) descripción del título

Interpretación

Ingrese un número entero positivo k y encuentre todos los números enteros positivos x ≥ yx≥yXy,使得 1 k = 1 x + 1 y \frac{1}{k}=\frac{1}{x}+\frac{1}{y} k1=X1+y1

diseño de algoritmos

Obviamente, cuando x ≥ yx≥yXy , el rango de y esy ∈ [k + 1, ky[ k+1 ,k+k ] , simplemente enumere y, si1 k - 1 y \ frac {1} {k} - \ frac {1} {y}k1-y1El numerador de se puede simplificar a 1, es decir, el numerador puede dividir el denominador, y se encuentra un conjunto de xey que cumplen las condiciones.

Código C ++

#include <bits/stdc++.h>
using namespace std;
int main() {
    
    
    int k;
    while(cin>>k){
    
    
        vector<pair<int,int>>v;
        for(int i=k+1;i<=k+k;++i)
            if(i*k%(i-k)==0)//分母对分子的余数为0
                v.push_back({
    
    i*k/(i-k),i});//找到了一组满足条件的x与y
        printf("%d\n",v.size());
        for(auto&i:v)
            printf("1/%d = 1/%d + 1/%d\n",k,i.first,i.second);
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/richenyunqi/article/details/100376042
Recomendado
Clasificación