4.18今日頭條編程題

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/gxh27954/article/details/70233371

1、map解決

2、set解決

3、大模擬,寫了近300行,只要不手殘一般能寫出來吧~

4、不會做,先寫了個搜索,然而超內存了,求教~~


1、

 #include<bits/stdc++.h>
using namespace std;
typedef long long LL;
map<int ,int > ma;
int main()
{
    int n,m;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        int a;
        scanf("%d",&a);
        ma[a]++;
    }
    scanf("%d",&m);
    for(int i=0;i<m;i++)
    {
        int b;
        scanf("%d",&b);
        if(ma[b]==0)
        {

        }
        else
        {
            printf("%d ",b);
        }
    }
    return 0;
}

2、

 #include<bits/stdc++.h>
using namespace std;
typedef long long LL;
set<LL> s;
int main()
{
    LL a;
    while(cin>>a)
    {
        if(a==0)
        {
            break;
        }
        s.insert(a);
    }
    cout<<s.size()<<endl;
    return 0;
}

3、

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
char s[1005];
char ans[100][100];
void work(char c,int x,int y)
{
    if(c=='0')
    {
        ans[x][y]=ans[x][y+1]=ans[x][y+2]='*';
        ans[x+1][y]='*';
        ans[x+1][y+2]='*';
        ans[x+2][y]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y]='*';
        ans[x+3][y+2]='*';
        ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*';
    }
    else if(c=='1')
    {
        ans[x][y]='*';
        ans[x+1][y]='*';
        ans[x+2][y]='*';
        ans[x+3][y]='*';
        ans[x+4][y]='*';
    }
    else if(c=='2')
    {
        ans[x][y]=ans[x][y+1]=ans[x][y+2]='*';
        ans[x+1][y+2]='*';
        ans[x+2][y]='*';
        ans[x+2][y+1]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y]='*';
        ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*';
    }
    else if(c=='3')
    {
        ans[x][y]=ans[x][y+1]=ans[x][y+2]='*';
        ans[x+1][y+2]='*';
        ans[x+2][y]='*';
        ans[x+2][y+1]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y+2]='*';
        ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*';
    }
    else if(c=='4')
    {
        ans[x][y]=ans[x][y+2]='*';
        ans[x+1][y]='*';
        ans[x+1][y+2]='*';
        ans[x+2][y]='*';
        ans[x+2][y+1]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y+2]='*';
        ans[x+4][y+2]='*';
    }
    else if(c=='5')
    {
        ans[x][y]=ans[x][y+1]=ans[x][y+2]='*';
        ans[x+1][y]='*';
        ans[x+2][y]='*';
        ans[x+2][y+1]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y+2]='*';
        ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*';
    }
    else if(c=='6')
    {
        ans[x][y]=ans[x][y+1]=ans[x][y+2]='*';
        ans[x+1][y]='*';
        ans[x+2][y]='*';
        ans[x+2][y+1]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y]='*';
        ans[x+3][y+2]='*';
        ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*';
    }
    else if(c=='7')
    {
        ans[x][y]=ans[x][y+1]=ans[x][y+2]='*';
        ans[x+1][y+2]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y+2]='*';
        ans[x+4][y+2]='*';
    }
    else if(c=='8')
    {
        ans[x][y]=ans[x][y+1]=ans[x][y+2]='*';
        ans[x+1][y]='*';
        ans[x+1][y+2]='*';
        ans[x+2][y]='*';
        ans[x+2][y+1]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y]='*';
        ans[x+3][y+2]='*';
        ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*';
    }
    else if(c=='9')
    {
        ans[x][y]=ans[x][y+1]=ans[x][y+2]='*';
        ans[x+1][y]='*';
        ans[x+1][y+2]='*';
        ans[x+2][y]='*';
        ans[x+2][y+1]='*';
        ans[x+2][y+2]='*';
        ans[x+3][y+2]='*';
        ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*';
    }


    else if(c=='+')
    {
        ans[x+1][y+1]='*';
        ans[x+2][y]=ans[x+2][y+1]=ans[x+2][y+2]='*';
        ans[x+3][y+1]='*';
    }
    else if(c=='-')
    {
        ans[x+2][y]=ans[x+2][y+1]=ans[x+2][y+2]='*';
    }
    else if(c=='*')
    {
        ans[x+1][y]=ans[x+1][y+2]='*';
        ans[x+2][y+1]='*';
        ans[x+3][y]=ans[x+3][y+2]='*';
    }
    else if(c=='/')
    {
        ans[x+1][y+2]='*';
        ans[x+2][y+1]='*';
        ans[x+3][y]='*';
    }
    else if(c=='=')
    {
        ans[x+1][y]=ans[x+1][y+1]=ans[x+1][y+2]=ans[x+1][y+3]='*';
        ans[x+3][y]=ans[x+3][y+1]=ans[x+3][y+2]=ans[x+3][y+3]='*';
    }
    else if(c=='.')
    {
        ans[x+3][y]=ans[x+3][y+1]='*';
        ans[x+4][y]=ans[x+4][y+1]='*';
    }
}
int main()
{
    gets(s);
    int len=strlen(s);
    for(int i=0; i<100; i++)
    {
        for(int j=0; j<100; j++)
        {
            ans[i][j]=' ';
        }
    }
    int a=0,b=0;
    int pos;
    char c;
    for(int i=0; i<len; i++)
    {
        if(s[i]==' ')
        {
            pos=i;
            break;
        }
        a=a*10+(s[i]-'0');
    }
    for(int i=pos; i<len; i++)
    {
        if(s[i]>='0'&&s[i]<='9')
        {
            b=b*10+(s[i]-'0');
        }
    }
    c=s[pos+1];
    int sum;
    s[len++]='=';
    char ss[10];
    if(c=='+')
    {
        sum=a+b;
        sprintf(ss,"%d",sum);
        for(int i=0; i<strlen(ss); i++)
        {
            s[len++]=ss[i];
        }
        s[len]=0;
    }

    else if(c=='-')
    {
        sum=a-b;
        sprintf(ss,"%d",sum);
        for(int i=0; i<strlen(ss); i++)
        {
            s[len++]=ss[i];
        }
        s[len]=0;
    }
    else if(c=='*')
    {
        sum=a*b;
        sprintf(ss,"%d",sum);
        for(int i=0; i<strlen(ss); i++)
        {
            s[len++]=ss[i];
        }
        s[len]=0;
    }
    else if(c=='/')
    {
        if(a%b==0)
        {
            sum=a/b;
            sprintf(ss,"%d",sum);
            for(int i=0; i<strlen(ss); i++)
            {
                s[len++]=ss[i];
            }
            s[len]=0;
        }
        else
        {
            double f=a*1.0/b;
            sprintf(ss,"%.2f",f);
            for(int i=0; i<strlen(ss); i++)
            {
                s[len++]=ss[i];
            }
            s[len]=0;
        }

    }





    int x=0,y=0;
    for(int i=0; i<len; i++)
    {
        work(s[i],x,y);
        if(s[i]==' ')
        {
            continue;
        }
        if(s[i]=='1')
        {
            y+=3;
        }
        else if(s[i]=='=')
        {
            y+=6;
        }
        else if(s[i]=='.')
        {
            y+=4;
        }
        else
        {
            y+=5;
        }

    }
    for(int i=0; i<x+6; i++)
    {
        for(int j=0; j<y; j++)
        {
            printf("%c",ans[i][j]);
        }
        printf("\n");
    }
    return 0;
}

4、沒過就不貼出來。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章