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+(si-'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显示器的用户可以至少行使一些交互式观点控制,并且显示器中的由计算机产生的增强内容将会与环境中被提及的目标保持配准状态。

相关推荐
好评1248 小时前
【C++】智能指针全解
c++·智能指针
是阿建吖!9 小时前
【Linux】信号
android·linux·c语言·c++
城北徐宫9 小时前
Linux信号深度解剖:5种产生、3张表、4次切换
linux·c++·学习
liulilittle9 小时前
论 Linux 内核态全局稳态带宽的卡尔曼估计与工程实现
linux·服务器·网络·c++·计算机网络·tcp·通信
XBodhi.9 小时前
Visual Studio C++ 语法错误: 缺少“;”(在“return”的前面)
开发语言·c++·visual studio
froyoisle11 小时前
CSP-J 历年复赛 T1 及解析(2019~2025)
数据结构·c++·算法·csp-j·csp·算法竞赛·信息学
basketball61611 小时前
C++ 高级编程:2. 基本线程池实现
java·开发语言·c++
chao18984411 小时前
SGM(Semi-Global Matching)立体匹配算法 — C++ 实现
开发语言·c++·算法
10岁的博客12 小时前
IOI 2018 高速公路收费(Highway)题解:二分与树的巧妙结合
开发语言·c++
不知名的老吴12 小时前
C++运算符重载的常见注意点
开发语言·c++