2891. 多次函数

Kevin_K

中二代码·续:

Python3 Code:
u=0
while 1:
    try:
        s=input()[5:]
        p=1
        while p-len(s):
            if s[p-1].isdigit() and s[p]=='x':
                s=s[:p]+'*'+s[p:]
            p+=1
        s=s.replace('^','**')
        l=[['.' for i in range(41)] for j in range(41)]
        for i in range(-20,21):
            l[0][i]='|'
            l[i][0]='-'
        l[0][0]='+'
        l[20][0]='>'
        l[0][20]='^'
        for x in range(-20,21):
            y=eval(s)
            if -21<y<21:
                l[x][y]='*'
        if u:
            print()
        u=1
        for i in range(20,-21,-1):
            for j in range(-20,21):
                print(l[j][i],end='' if j-20 else '\n')
    except:
        break

大家的生产力,由我来解放!Python恶心恶心字符串现场。(彩蛋手动删除线)

51151201048

额,不科学,不加换行也能过!!!
[em:13][em:13]

80#0012

真的恶心+1

10175102262 LarsPendragon

真坑(捂脸),本来以为条件简单了就像简化一下读取部分……然后跳进了一个巨坑里……
楼上不放代码那就我来放代码恶心大家:

#include <stdio.h>
#include <string.h>
int main()
{
    char F[40], dot[41][41];
    int check=0;
    check=scanf("%s",F);
    while(check!=EOF)
    {
        int i, j, sig=1, l=strlen(F), a3=0, a2=0, a1=0, a0=0, num=1;
        for(i=0; i<41; i++)//画坐标系
            for(j=0; j<41; j++)
            {
                if(i==20)
                {
                    if(j==20) dot[i][j]='+';
                    else if(j==40) dot[i][j]='>';
                    else dot[i][j]='-';
                }
                else if(j==20)
                {
                    if(i==0) dot[i][j]='^';
                    else if(i==20) dot[i][j]='+';
                    else dot[i][j]='|';
                }
                else dot[i][j]='.';
            }
        for(i=5; i<l;)//读函数参考2.一元多项式乘法的评论区
        {
            if(F[i]=='-') {sig=-1; num*=-1; i++;}
            else if(F[i]=='+') {sig=1; i++;}
            else if(F[i]=='x')
            {
                if(F[++i]=='^')
                {
                    i++;
                    if(F[i]=='3') {a3=num; a0=0; i++;}
                    else if(F[i]=='2') {a2=num; a0=0; i++;}
                }
                else {a1=num; a0=0;}
            }
            else
            {
                num=F[i++]-'0';
                if(F[i]>='0'&&F[i]<='9')
                {
                    num*=10;
                    num+=F[i]-'0';
                    i++;
                }
                num*=sig;
                a0=num;
            }
        }
        for(i=-20; i<21; i++)
        {
            num=a3*i*i*i+a2*i*i+a1*i+a0;
            if(num>-21 && num<21) dot[20-num][i+20]='*';
        }
        for(i=0; i<41; i++)
        {
            for(j=0; j<41; j++) printf("%c",dot[i][j]);
            printf("\n");
        }
        check=scanf("%s",F);
        if(check!=EOF) printf("\n");
        else break;
    }
    return 0;
}
Master X

恶心字符串系列第三弹……
最后一行换行注意
真 打表
就不放代码恶心大家了……

你当前正在回复 博客/题目
存在问题!