C++从零开始(day9)——熟悉类相关题目

本文是一位双非本科大一学生分享的C++学习经历,讲述了如何通过类的特性规避特定编程限制,以及解决求和、日期转换和日期类相关问题的实例,展示了初学者如何运用所学知识解决实际题目。
摘要由CSDN通过智能技术生成

这是关于一个普通双非本科大一学生的C++的学习记录贴

在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料

那么开启正题

今天没有学习新的知识,简单的刷了一些题

1.求1+2+3+...+n

求1+2+3+...+n_牛客题霸_牛客网这是题目链接

要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

也就是要求我们用类的特性来完成,下面是我的ac代码

class Sum
{
public:
    static void Init()
    {
        _sum = 0;
        _i = 1;
    }
    
    Sum()
    {
        _sum += _i;
        ++_i;
    }

    static int GetSum()
    {
        return _sum;
    }

private:
    static int _i;
    static int _sum;
};

int Sum::_i = 1;
int Sum::_sum = 0;

class Solution {
public:
    int Sum_Solution(int n) 
    {
        Sum::Init();
        Sum a[n];
        return Sum::GetSum();
    }
};

我们可以借助每创建一个变量就调用一次构造函数来“模拟”for循环,而每个对象的成员是不一样的,所以我们定义两个静态的成员变量,使每次操作都在同一组数据上操作,为了实现函数多次的正常调用,我们还得实现一个初始化函数,为了返回值也得创建一个函数,当然,这两个函数都得是静态的,最后把代码一实现就成功ac了

2.计算日期到天数转换

计算日期到天数转换_牛客题霸_牛客网这是题目链接

#include <iostream>
using namespace std;

int main()
{
    int MonthDay[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    int year,month,day;
    int n=0;
    while(cin >> year >> month >>day)
    {
        int i = 0;
        for(i=1;i<month;i++)
        {
            n += MonthDay[i];
        }
        n += day;
        if(month > 2 && (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)))
        ++n;
        cout << n << endl;
    }
    return 0;
}

这个题目是IO型题目需要我们自己写输入输出,要注意多组数据输入,用while循环来实现,注意闰年的二月多一天,我们先把前面月份得天数累加,再判断是否过了二月,并且是闰年再加上1,就可以很简洁得完成任务

3.几道关于日期类的题

日期差值_牛客题霸_牛客网

打印日期_牛客题霸_牛客网

日期累加_牛客题霸_牛客网

这几道比较简单,可以用我们前面实现的日期类套用完成的题目我不在讲解,需要的小伙伴可以自行参考前面日期类的实现完成题目

今天的博客就到这里了,后续内容明天分享,最近因为考试周原因不能更新太多内容,等考试周结束了再"快马加鞭"

新手第一次写博客,有不对的位置希望大佬们能够指出,也谢谢大家能看到这里,让我们一起学习进步吧!!!

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值