zoukankan      html  css  js  c++  java
  • UVa10288 Coupons 分数模版

    UVa10288

    题目非常简单, 答案就是 n/n+n/(n-1)+...+n/1;

    要求分数输出。套用分数模板。。

    #include <cstdio>  
    #include <cstring> 
    #include <cmath>  
    #include <algorithm>  
    using namespace std;  
    const int maxn = 500;   
      
    struct fraction {  
        long long numerator; // 分子  
        long long denominator; // 分母  
        fraction() {  
            numerator = 0;  
            denominator = 1;  
        }  
        fraction(long long num) {  
            numerator = num;  
            denominator = 1;  
        }  
        fraction(long long a, long long b) {  
            numerator = a;  
            denominator = b;  
            this->reduction();  
        }  
      
        void operator = (const long long num) {  
            numerator = num;  
            denominator = 1;  
            this->reduction();  
        }  
      
        void operator = (const fraction &b) {  
            numerator = b.numerator;  
            denominator = b.denominator;  
            this->reduction();  
        }  
      
        fraction operator + (const fraction &b) const {  
            long long gcdnum = __gcd(denominator, b.denominator);  
            fraction tmp = fraction(numerator*(b.denominator/gcdnum) + b.numerator*(denominator/gcdnum), denominator/gcdnum*b.denominator);  
            tmp.reduction();  
            return tmp;  
        }  
      
        fraction operator + (const int &b) const {  
            return ((*this) + fraction(b));  
        }  
      
        fraction operator - (const fraction &b) const {  
            return ((*this) + fraction(-b.numerator, b.denominator));  
        }  
      
        fraction operator - (const int &b) const {  
            return ((*this) - fraction(b));  
        }  
      
        fraction operator * (const fraction &b) const {  
            fraction tmp = fraction(numerator*b.numerator, denominator * b.denominator);  
            tmp.reduction();  
            return tmp;  
        }  
      
        fraction operator * (const int &b) const {  
            return ((*this) * fraction(b));  
        }  
      
        fraction operator / (const fraction &b) const {  
            return ((*this) * fraction(b.denominator, b.numerator));  
        }  
      
        void reduction() {  
            if (numerator == 0) {  
                denominator = 1;  
                return;  
            }  
            long long gcdnum = __gcd(numerator, denominator);  
            numerator /= gcdnum;  
            denominator /= gcdnum;  
        }  
        void print() {  
            if (denominator == 1) printf("%lld
    ", numerator);  
            else {  
                long long num = numerator/denominator;  
                long long tmp = num;  
                int len = 0;  
                while (tmp) {  
                    len++;  
                    tmp/=10;  
                }  
      
                for (int i = 0; i < len; i++) printf(" ");  
                if (len != 0) printf(" ");  
                printf("%lld
    ",numerator%denominator);  
      
                if (num != 0) printf("%lld ", num);  
                tmp = denominator;  
                while (tmp) {  
                    printf("-");  
                    tmp/=10;  
                }  
                puts("");  
      
                for (int i = 0; i < len; i++) printf(" ");  
                if (len != 0) printf(" ");  
                printf("%lld
    ",denominator);  
            }  
        }  
    } f[maxn];  
      
    int main() {  
        int n;  
        while (scanf("%d", &n) != EOF) {  
      
            f[0] = 0;  
            for (int i = 1; i <= n; i++)  
                f[i] = f[i-1] + fraction(1, i);  
            f[n] = f[n] * n;  
      
            f[n].print();  
        }  
        return 0;  
    }  
    

      

  • 相关阅读:
    sql server登录账户看不到sql server代理和维护计划
    Redis(1.19)redis内存消耗、redis内存优化
    【最佳实践】bat实现自动化运行sql
    Redis(1.18)redis阻塞分析
    某机场网络环境分析
    【js】setInterval是个坑!chrome定时截图保存实现
    【操作系统】CPU中的时间片的概念
    Jeff Atwood:软件工程已死?
    vscode配置 eslint+prettierrc自动格式化vue3、ts、tsx文件
    基于.NET的大型Web站点StackOverflow架构分析
  • 原文地址:https://www.cnblogs.com/heisenberg-/p/6857960.html
Copyright © 2011-2022 走看看