2.20 oj83+84+85

今日学习内容:oj基础83~85+单词100+翻译U12B P4~6

oj基础83

以字符串形式输入仅有整数和加减(正负)号构成的表达式,输出该表达式的值。

cpp 复制代码
#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main()
{
    string line;
    while(getline(cin,line)){
        //有空格 先去空格
        string s;
        for(size_t i=0;i<line.length();i++){
            if(line[i]!=' '){
                s+=line[i];
            }
        }
        //开头填加号
        if(s[0]>='0'&&s[0]<='9'){
            s="+"+s;//变成正的
        }
        //提取符号和数字进行计算
        int ans=0;
        size_t i=0;//下标
        while(i<s.length()){
            char op=s[i];//先提取符号
            i++;//跳过符号
            int num=0;
            //将字符串的数字转化成可以计算的数字
            while(i<s.length()&&isdigit(s[i])){
                num=num*10+(s[i]-'0');//123=1 12 123
                i++;
            }
            //数字提取完毕,进行计算
            if(op=='+'){
                ans+=num;
            }
            if(op=='-'){
                ans-=num;
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}
//表达式求值

单字符单引号,字符串双引号;下标用size_t类型,否则在用到find()或者lenth()等函数时,会报类型不匹配的错误。num=num*10+(s[i]-'0')用来进行字符串向数字的转换。eg.123 0*10+1=1;1*10+2=12;12*10+3=123;

oj基础84

从键盘输入一个字符串和一个字符,将输入字符从字符串中删除,输出新的字符串。如果字符串中没有此字符,则原样输出字符串。

cpp 复制代码
#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main()
{
    string old;
    //整行读入要用getline
    getline(cin,old);
    char del=cin.get();
    string s;
    for(size_t i=0;i<old.length();i++){
        if(old[i]!=del){
            s+=old[i];
        }
    }
    cout<<s<<endl;
    return 0;
}

把cin改成char del=cin.get();就可以读入空格了。cin读不到空格

oj基础85

假设所有的短号都是"6"+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。

现在,如果给你一个11位长的手机号码,你能找出对应的短号吗?

cpp 复制代码
#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int N;
    cin>>N;
    cin.ignore();
    for(int i=0;i<N;i++){
        string s;
        getline(cin,s);
        //保存后5位
        string num="6";
        for(size_t i=6;i<=s.length()-1;i++){
            num+=s[i];
        }
        cout<<num<<endl;
    }
}

单词

翻译

P4

实现这种连接是一个宏伟的目标------它从计算机科学领域汲取知识,但是也可能导致对AR真正含义的误解。比如,许多人将虚拟与现实元素的视觉结合与电影中的特效相联系,比如侏罗纪公园和阿凡达。虽然电影中的计算机图形技术也可以应用与AR,但是电影还是缺乏AR的一个关键要素------交互性。为了避免这种混淆,我们需要设定所讨论话题的范围。换句话说,我们需要回答一个关键问题:什么是AR?

P5

AR的最被广泛接受的定义是阿祖吗在他的1997年的综述论文中提出的,根据阿祖吗的观点,AR必须具有下面的三个特征:

·结合现实和虚拟

·实时交互

·3D注册

P6

也就是说,对于一个有效的定义,AR依赖于三个关键的组成部分:

(1)虚拟和现实信息的结合,以真实世界作为主要的活动场所

(2)交互性,实时更新(3)与物理环境注册于3D的虚拟信息

这个定义不需要特殊的输出设备,比如头戴式显示器,也不会将AR限制于视觉媒体中。音频,触觉,甚至嗅觉、味觉AR也包含在这个范围内,机试他们很难实现。要注意,这个定义确实要求实时控制和空间配准,也就是意味着对应的虚拟和现实信息的精确的实施对齐。这个强制命令要求AR显示器的用户可以至少行使一些交互式观点控制,并且显示器中的由计算机产生的增强内容将会与环境中被提及的目标保持配准状态。

相关推荐
Hello eveybody3 分钟前
介绍最大公因数和最小公约数(C++)
java·开发语言·c++
宵时待雨6 分钟前
优选算法专题3:二分查找
数据结构·c++·算法·leetcode·职场和发展
Byte不洛7 分钟前
理解C++异常机制:栈展开、异常传播与异常安全
c++·异常处理·后端开发·编程基础·try catch
我头发多我先学9 分钟前
C++ AVL 树:平衡原理到完整实现(自平衡二叉搜索树)
开发语言·数据结构·c++·算法
啊我不会诶10 分钟前
2025浙江省赛补题
c++·算法
郝学胜-神的一滴16 分钟前
epoll 边缘触发 vs 水平触发:从管道到套接字的深度实战
linux·服务器·开发语言·c++·网络协议·unix
cpp_250118 分钟前
P1877 [HAOI2012] 音量调节
数据结构·c++·算法·动态规划·题解·洛谷·背包dp
dragen_light18 分钟前
1.ROS2-Install
c++·python·ros
不知名的老吴28 分钟前
编程初体验之句柄的概念及使用示例
c++
木子墨51632 分钟前
LeetCode 热题 100 精讲 | 矩阵与图论进阶篇:矩阵置零 · 螺旋矩阵 · 旋转图像 · 搜索二维矩阵 II · 岛屿数量 · 腐烂的橘子
c++·算法·leetcode·矩阵·力扣·图论