C++从零开始的打怪升级之路(day9)

发布时间:2024年01月14日

这是关于一个普通双非本科大一学生的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,就可以很简洁得完成任务

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

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

?

文章来源:https://blog.csdn.net/2301_80764270/article/details/135576994
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。