当前位置: 首页 > news >正文

C++算法基础语法-13

计算从某年某月某日到某年你某日的分钟数

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int flag=0,answer=0;
    for(int year = 2000; year <=2025; year++)
    {
        for(int month = 1; month <= 12; month++)
        {
            for(int day = 1; day <= 31; day++)
            {
                if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
                {
                   
                    if(day > 31) break;
                }
                else if(month == 2)
                {
                    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
                    {
                        if(day > 29) break;
                    }
                    else
                    {
                        if(day > 28) break;
                    }
                }
                else
                {
                    if(day > 30) break;
                }
                if(year==2018&&month==4&&day==21) 
                {
                    flag=1;
                }
                if(flag==1) answer+=24*60;
                if(year==2024&&month==6&&day==15)
                {
                    cout<<answer;
                    break;
                }
            }
        }
    }
    return 0;
}

 

ASCII码值、字母大小写转换、'0'~'9'

数字转字符:'A'(65) 'a'(97) '0'(48)
char A = char(65);
char a = char(97);
char c = 'a' + 2; // 'c' = 'a' + 2
char seven = '0' + 7; // '7' = '0' + 7

字符转数字
int a = 'a'; // a: 97
int A = 'A'; // A: 65
int t = 't' - 'a'; // 计算字母间差值
int seven = '7' - '0';

所谓字典序就是以ASCII码排序

两个字符串 abcd 和 abdd 比较大小,从第一个字符开始逐位比较,第一个字符不相等, ASCII码值小谁的字典序就小;若第一个相等,继续逐位比较后续字符

sort() 可以对字符串进行字典序排序,字符按ASCII码值由小到大排列

#include <iostream>
#include <algorithm> // 包含 sort 函数
#include <string>
using namespace std;
int main() {
   string str = "cbad";
   cout << "原始字符串: " << str << endl;
   sort(str.begin(), str.end());
   cout << "排序后的字符串: " << str << endl;
    return 0;
}

浮点数比较相等

C/C++内置的double类型由相应的二进制存储的,double在计算的时候是会可能丢失精度的,最后进行浮点数比较的时候要注意做一个fabs,检查两个数的差的绝对值是否小于一个很小的正数(称为“epsilon”或“精度阈值”),如果小于这个阈值,就认为这两个数是相等的

#include <iostream>
#include <cmath> // 包含 fabs 函数
using namespace std;
bool compareDouble(double a, double b) {
    double epsilon = 1e-6; // 注意精度,默认是1e-6, epsilon代表比较时允许的最大误差
    if (fabs(a - b) < epsilon) 
    return true;
    return false;
}
int main() {
    double num1 = 0.0000001;
    double num2 = 0.0000002;
    double num3 = 0.0000001 + 1e-10; 

    // 比较 num1 和 num2
    if (compareDouble(num1, num2))
    {
        cout << "num1 和 num2 相等" << endl;
    } else 
    {
        cout << "num1 和 num2 不相等" << endl;
    }
    if (compareDouble(num1, num3)) 
    {
        cout << "num1 和 num3 相等" << endl;
    } else 
    {
        cout << "num1 和 num3 不相等" << endl;
    }
    return 0;
}

相关文章:

  • 单链表删除算法(p=L; j=0;与p=p->next;j=1的辨析)
  • Flutter系列教程之(3)——简单的APP实现
  • qtcreator上使用opencv报错
  • 水利工程安全包括哪几个方面
  • MacOS 终端选型
  • 实现分布式限流开源项目
  • 服务器硬件老化导致性能下降的排查与优化
  • 如何基于PyTorch做二次开发
  • 大白话React第六章深入学习 React 高级特性及生态
  • GGUF 文件格式全解析
  • 问题:undefined reference to `pthread_mutexattr_init‘
  • Vue的父子组件通信问题
  • vsCode下载、安装、推荐插件
  • 90.奇妙货币交易问题|Marscode AI刷题
  • 在Linux、Windows和macOS上部署DeepSeek模型的最低配置要求
  • 大白话3Vuex 是什么,具体怎么用?
  • 349. 两个数组的交集
  • django:更新页面但未生效
  • 基于JavaWeb开发的高校食堂点餐系统
  • 国内访问Github的四种方法(2025版)
  • 外贸网站注册/百度山西授权代理
  • 广东品牌网站建设多少钱/图片扫一扫在线识别照片
  • 如何说服老板做网站/谷歌浏览器在线入口
  • 佛山网站建设哪家效果好/百度指数有哪些功能
  • 网站视频插件怎么做/江西短视频seo搜索报价
  • 专业网站建设专业网站设计/谷歌首页