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

相关推荐
散峰而望1 小时前
【算法竞赛】堆和 priority_queue
开发语言·数据结构·c++·算法·贪心算法·动态规划·推荐算法
alexwang2112 小时前
B2007 A + B 问题 题解
c++·算法·题解·洛谷
Zik----2 小时前
Leetcode2 —— 链表两数相加
数据结构·c++·leetcode·链表·蓝桥杯
白太岁3 小时前
Muduo:(3) 线程的封装,线程 ID 的获取、分支预测优化与信号量同步
c++·网络协议·架构·tcp
仰泳的熊猫3 小时前
题目1523:蓝桥杯算法提高VIP-打水问题
数据结构·c++·算法·蓝桥杯
汉克老师4 小时前
GESP2024年3月认证C++二级( 第三部分编程题(1) 乘法问题)
c++·算法·循环结构·gesp二级·gesp2级
白太岁4 小时前
Muduo:(0) 架构与接口总览
c++·架构·tcp
闻缺陷则喜何志丹4 小时前
微分中值定理与导数的应用
c++·高等数学·微分·中值定理·导数应用
tankeven4 小时前
HJ94 记票统计
c++·算法