1.单词

2.翻译

 增强现实技术的一个明显应用方向是用于对印刷材料(如传单或杂志)进行增强。读过《哈利。波特》系列小说的人都知道,《每日预言报》上的图片是如何变得栩栩如生的。这一理念通过增强现实技术可以实现,具体做法是在印刷模板的特定区域上叠加数字影片和动画。当人们在电脑或智能手机上查看这本杂志时,静态图片将被动态序列或影片所取代。 增强现实技术还可对销售人员起到帮助作用,他们正努力展示一款产品的优点。尤其是对于复杂设备而言,仅用语言描述其内部运作机制可能较为困难。让潜在客户亲眼目睹其生动的内部构造,往往能产生更为强烈的吸引力 在贸易展和展厅中展示。 Pictofit1是一款虚拟试衣间应用,使用户能够预览来自在线时尚店铺或自己身体上的服装款式(图12B-4)。这些服装会自动调整以适应穿戴者的尺寸。此外,还会估算身体尺寸并予以提供,以帮助录入购买数据。

3.代码

45.回文数

#include<bits/stdc++.h>
using namespace std;
long long getreverse(long long n)
{
    long long rev=0;
    long long temp=n;
    while(temp>0)
    {
        rev=rev*10+temp%10;
        temp=temp/10;
        
    }
    return rev;
}
bool ishuiwen(long long n)
{
    return n==getreverse(n);
}
       
int main()
{
    long long  n;
    while(cin>>n)
    {
        if(n==0) return 0;
        bool flag=false;
        long long current=n;
        while(!flag)
        {
        long long re_current=getreverse(current);
        long long sum=current+re_current;
        cout<<current<<"+"<<re_current<<"="<<sum<<endl;
        flag=ishuiwen(sum);
        current=sum;
        }        
    }
    return 0;
}
 输入数据保证该回文数小于2^31,题目要求输入小于2的31次方,为了防止相加后溢出,统一设成long long型

求回文,不一定要用字符串反转,有点复杂。

        可以rev=rev*10+temp%10;
               temp=temp/10;这样

46.特殊四位数

#include<bits/stdc++.h>
using namespace std;
bool is_havesquare(int n)
{
    double a=sqrt(n);
    int temp=round(a);
    return (temp*temp==n);
}
bool is_right(int n)
{
    int qian=n/1000;
    int bai=(n-qian*1000)/100;
    int shi=(n-qian*1000-bai*100)/10;
    int ge=(n-qian*1000-bai*100-shi*10);
    return (qian+shi==bai*ge);
}
int main()
{
    int n;
    while(cin>>n)
    {
        int count=0;
        for(int i=1156;;i++)
        {
            if(is_havesquare(i)==true)
            {
                if(is_right(i)==true)
                {
                    
                    count++;
                    if(count==n)
                    {
                        
                            cout<<i<<endl;
                        break;}
                    }    
                    
            }
        }
    }
    return 0;
}

主要卡壳在判断一个数是否有平方根

后面问了ai,先用double存一个正整数的平方根,再将这个double转为整形,两两相乘,若等于原来的数,则证明该数有平方根  

 double a=sqrt(n);
    int temp=round(a);round,它将一个浮点数(floatdoublelong double)转换为最接近的整数。如果小数部分 == 0.5(即恰好在两个整数中间),C++11 标准规定向远离零的方向取整(即正数向上,负数向下)。
    return (temp*temp==n);

47.最大值

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int N,L1,L2;
    while(cin>>N>>L1>>L2)
    {
        vector<int> vec(N);
        for(int i=0;i<N;i++)
            cin>>vec[i];
        int max_sum=INT_MIN;
        for(int len=L1;len<=L2;len++)
        {
            for(int start=0;start<=N-len;start++)
            {
                int current_sum=0;
                for(int k=0;k<len;k++)
                    current_sum=current_sum+vec[start+k];
                if(current_sum>max_sum)
                    max_sum=current_sum;        
            }
        }
        cout<<max_sum<<endl;    
    } 
    return 0;
}

因为要求是连续的数字,所以不能先用sort排好序,依次取末尾的数,求最大值,会打断前后状态。

所以使用暴力解

第一层for循环确认好,长度len是从L1到L2;

第二层for循环确认好,起点位置start,当要求的个数为len时,起点最多从0到N-len;

比如当要求相加的个数为2时,有10个数,vec数组索引分别为0-9,起点为0时,即加上索引为0和1 对应的数

起点为8,即加上索引为8和9对应的数,如果起点为9,那么加上即加上索引为9和10对应的数,索引10,超出数组范围了。所以起点最多从0到N-L1;

第三层for循环,即将数字加起来

for(int k=0;k<len;k++)
                    current_sum=current_sum+vec[start+k];

起始位置为start为0时,要求相加个数为2,也就是len为2.加上vec[0],再加上vec[0+1]即vec[1]

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐