iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Problem F: 分数类的模板数组类
  • 895
分享到

Problem F: 分数类的模板数组类

数组ciWeb 2023-05-25 22:05:52 895人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

HomeWEB BoardProblemSetStandingStatusStatisticsProblem F: 分数类的模板数组类Time Limit: 3 Sec    Memory Limit:

Home

WEB Board

ProblemSet

Standing

Status

Statistics


Problem F: 分数类的模板数组


Time Limit: 3 Sec    Memory Limit:  128 MB  

Submit: 1264  

Solved: 974  

[Submit][Status][Web Board]


Description



封装一个模板数组类Array,支持一下操作:



1. 构造函数Array(int n),将数组初始化为n个存储空间;



2. 函数input(int n),读取最多n个元素,但不能超过数组存储空间的上限;



3. 重载下标运算符,返回数组的元素。



封装一个分数类Fract,用来处理分数功能和运算,能支持你的Array类使用。



1. 构造:传入两个参数n和m,表示n/m;分数在构造时立即转化成最简分数。



2. show()函数:分数输出为“a/b”或“-a/b”的形式,a、b都是无符号整数。若a为0或b为1,只输出符号和分子,不输出“/”和分母。



3. 在分数类上重载+=运算符,进行分数的加法运算。



-----------------------------------------------------------------------------



你设计两个类:Array类和Fract类,使得main()函数能够运行并得到正确的输出。调用格式见append.cc



Input



输入为两部分,分别是一组实数测试样例和一组复数测试样例。



这两组测试样例都以正整数n,且n小于1000,n表示需要输入n个实数(或分数)。



测试样例的第二行开始为n个实数(或分数)。其中每个分数输入为两个整数n、m,表示分数n/m。



Output



第一部分输出一个实数,是第一组测试样例之和;第二部分输出一个分数,是第二组测试样例之和。



分数输出时为最简形式,负号只会出现在最前面,若分母为1或分子为0,则只输出一个整数,即分子部分,而没有“/”和分母部分。



Sample Input



46 8 7 591 320 -1580 150-9 16 612 16-33 -486 110 -10



Sample Output



26-17117/2640



HINT

Append Code



append.c,   append.cc,


[  Submit][Status][Web Board]


한국어<  中文 فارسی English ไทย All Copyright Reserved 2010-2011  SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin


#include <iOStream>
#include <math.h>
using namespace std;
template <class T>
class Array
{
private:
    T *a;
public:
    Array(int num)
    {
        a = new T[num];
    }
public:
    void input(int n)
    {
        for(int i=0; i < n; i++)
            cin >> a[i];
    }
public:
    T &operator [](int y)
    {
        return a[y];
    }
};
class Fract
{
public:
    Fract(){}
    Fract(int n1, int m1) : m(m1), n(n1)
    {
        int c = 0;
        if(m * n < 0 )
            c=1;
        m = fabs(m);  n = fabs(n);
        int a = m > n ? n : m;
        for(int i = a; i >= 2; i--)
        {
            if((m % i == 0) && (n % i == 0))
            {
                m = m / i; n = n / i;
            }
        }
        if(c)
            n = -n;
    }
public:
    void show()
    {
        if(m==1 || n==0)
            cout << n << endl;
        else
            cout << n << "/" << m << endl;
    }
public:
    Fract operator += (const Fract &f)
    {
        int m1, n1;
        m1 = m*f.m;
        n1 = n*f.m + f.n*m;
        Fract *p;
        p = new Fract(n1,m1);
        n = p->getn();
        m = p->getm();
        delete p;
        return *this;
    }
    friend ostream &operator <<(ostream &os,const Fract & f);
    friend istream &operator >> (istream &is,Fract &f)
    {
        is >> f.n >> f.m;
        return is;
    }
public:
    int getn() const { return n; }
    int getm() const { return m; }
private:
    int m, n;
};
 
int main()
{
    int  n;
    cin >> n;
    Array<double> db(1000);
    db.input(n);
    double dbsum(0.0);
    for(int i = 0; i < n; i++)
        dbsum += db[i];
    cout << dbsum << endl;
 
    cin >> n;
    Array<Fract> fr(1000);
    fr.input(n);
    Fract frsum(0, 1);
    for(int i = 0; i < n; i++)
        frsum += fr[i];
    frsum.show();
}

--结束END--

本文标题: Problem F: 分数类的模板数组类

本文链接: https://www.lsjlt.com/news/218560.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Problem F: 分数类的模板数组类
    HomeWeb BoardProblemSetStandingStatusStatisticsProblem F: 分数类的模板数组类Time Limit: 3 Sec    Memory Limit: ...
    99+
    2023-05-25
    数组 ci Web
  • Problem D: 分数类的类型转换
    HomeWeb BoardProblemSetStandingStatusStatistics Problem D: 分数类的类型转换 Time Limit: 3 Sec   Memory Limit: 12...
    99+
    2023-05-25
    Web #include Memory
  • C++函数模板和类模板分析
    本篇内容介绍了“C++函数模板和类模板分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.函数模板函数模板定义了参数化的非成员函数,这使得...
    99+
    2023-06-17
  • 浅析C++函数模板和类模板
    目录一、函数模板1、函数模板的定义和使用2、函数模板的编译原理3、函数模板的声明二、类模板1、类模板的定义和使用2、类模板的编译原理3、类模板的继承和派生C++语言全盘继承了C语言的...
    99+
    2024-04-02
  • C++ 函数模板和类模板详情
    目录1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.2 函数模板格式化 2.3 函数模板原理 2.4 函数模板实例化 2.5 模板参数的匹配原理 3. 类模板 3.1 类模...
    99+
    2024-04-02
  • C++ 函数的类模板和函数模板有何区别?
    c++++ 模板包含类模板和函数模板。类模板允许创建可用于不同数据类型的类,而函数模板可用于不同数据类型的函数。两者主要区别在于:类模板显式实例化,函数模板隐式实例化;类模板中类型参数在...
    99+
    2024-04-12
    类模板 函数模板 c++
  • C++泛型编程函(数模板+类模板)
    目录一、函数模板1.函数模板介绍2.函数模板与重载函数的关系3.函数模板实现机制二、类模板1.类模板基本语法2.类模板内函数的整体布局【分文件使用类模板】3.类模板的static与模...
    99+
    2024-04-02
  • C++ 中模板类和模板函数的应用场景?
    模板类和模板函数在 c++++ 中通过参数化类型提供代码重用性。模板类允许创建通用类,如容器类,适用于各种数据类型。模板函数允许创建处理不同数据类型的函数,如排序算法和数学函数。通过使用...
    99+
    2024-04-24
    模板函数 模板类 c++ 标准库
  • C++ 函数模板中的类模板是如何使用的?
    C++ 函数模板中的类模板 C++ 函数模板可以感知类模板,并利用它们作为参数类型。这允许您创建通用函数,适用于各种数据类型和结构。 语法template<typename T&...
    99+
    2024-04-15
    c++ 函数模板 代码可读性
  • C++模板基础之函数模板与类模板实例详解
    目录泛型编程 函数模板 函数模板的概念 函数模板的格式 函数模板的原理 函数模板的实例化 函数模板的匹配原则 类模板 类模板的定义格式 类模板的实例化 总结泛型编程  ...
    99+
    2024-04-02
  • C++ 类模板与成员函数模板示例解析
    目录类模板类模板与成员函数模板的区别类模板 前面以函数模板为例,介绍了具体化与实例化。那么对于类模板,有什么不同呢? 类包括成员变量和成员函数,他们都可以包含类模板的模板参数。而成...
    99+
    2023-01-03
    C++ 类模板成员函数模板 C++ 类模板成员函数模板
  • C++类模板与函数模板基础详细讲解
    目录函数模板类模板总结函数模板 当我们想要定义一个可以支持泛型的函数时,就要采用函数模板的方式了。所谓泛型就是可以支持多种类型的操作,比如我们定义一个compare操作,他可以根据传...
    99+
    2022-11-13
    C++类模板 C++函数模板
  • TypeScript数据类型中模板字面量的示例分析
    这篇文章主要为大家展示了“TypeScript数据类型中模板字面量的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“TypeScript数据类型中模板字面...
    99+
    2024-04-02
  • C++ 函数模板的类型推导机制
    函数模板通过类型推导机制在编译时推断返回类型和类型,允许使用不同类型参数创建通用函数或类。类型推导规则包括:完美转发:模板参数从函数原型中的参数类型直接传递;模板参数推断:编译器从参数类...
    99+
    2024-04-13
    类型推导 函数模板 c++
  • C++非类型类模板参数的基本概念是什么
    C++非类型类模板参数的基本概念是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C++编程语言已经出现就立即引起了开发人员的注意,它具有C语言的所用功能,并...
    99+
    2023-06-17
  • C++非模板类型参数怎么用
    本篇内容介绍了“C++非模板类型参数怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、非模板类型参数分类:模板参数分类类型形参与非类型...
    99+
    2023-06-26
  • C++ 函数模板中类型参数的使用技巧?
    使用类型参数技巧可以创建针对任何类型工作的通用 c++++ 函数模板,包括:声明类型参数:使用尖括号 和 typename 声明类型参数。使用类型参数:在函数体内使用类型参数作为类型声...
    99+
    2024-04-15
    c++ 函数模板
  • php数组的分类有哪些
    这篇文章将为大家详细讲解有关php数组的分类有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用框架。2、P...
    99+
    2023-06-14
  • 【C++】详细介绍模版初阶—函数模版、类模板
    文章目录 一、泛型编程二、函数模版2.1 函数模版概念2.2 函数模版格式2.3 函数模版的原理2.4 函数模版的实例化2.5 函数模版的匹配原则 三、类模版3.1 类模版定义3.2 类模...
    99+
    2023-09-02
    c++ 前端
  • 泛型类与函数模板的区别是什么?
    泛型类定义新数据类型,而函数模板定义算法。泛型类通过指定类型参数实例化,函数模板通过调用实例化。泛型类可以继承,而函数模板不能。 泛型类与函数模板的区别 泛型类和函数模板都是 C++ ...
    99+
    2024-04-24
    泛型 函数模板 c++ 作用域
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作