东虫虾草 2019-07-17 15:52 采纳率: 0%
浏览 522

PTA天梯赛练习题打印沙漏,为什么提交错误?

题目:链接地址

个人编写的Python3代码,为何提交验证不通过

import math

In = input()
F = filter(None, In.split(' '))
S = []

for i in F:
    S.append(i)

C = int(S[0])
n = int(math.sqrt((C+1)/2))
n1 = -n
i = 0
while n >= n1:
    if n >= 0:
        print(' '*i, end='')
        print(S[1]*(2*n+1))
        n = n - 1
        i = i + 1
    if n < 0:
        print(' '*(i-2), end='')
        print(S[1]*(2*abs(n)+1))
        n = n - 1
        i = i - 1


n = -n1
print(C - ((n * n) * 2 - 1))

  • 写回答

1条回答 默认 最新

  • qq_1289566771 2020-02-07 16:34
    关注

    #include
    int main()
    {
    int i,n,k;
    char op1,op;
    scanf("%d",&n);
    getchar();
    scanf("%c",&op);
    printf("%c",op); /*明明能输出 op*/
    int a[200];
    for(i=1;i<=200;i++)
    a[i]=2*i-1;
    int sum=0,sum1=0;
    for(i=1;i<=10;i++){
    sum=sum+a[i];
    sum1=2*sum;
    if(sum1-1>=n){
    k=i-1;
    break;
    }
    }

    int j,g,h,count=0;
    for(i=k;i>=1;i--)
    {
    for(j=k-i;j>0;j--)
    printf(" ");
    for(j=1;j<=2*i-1;j++){
    printf("%c",op); /*到循环里头为啥又输不出来*/
    count++;
    }
    printf("\n");
    }
    for(i=1;i<=k-1;i++){
    for(j=k-1-i;j>0;j--)
    printf(" ");
    for(j=1;j<=2*i+1;j++){
    printf("%c",op); /*这里也没办法输出 op*/
    count++;
    }
    printf("\n");
    }
    printf("%d",n-count);
    return 0;
    }

    我也是打印沙漏 也是有答案错误,我自己调试的时候发现 循环里头的 printf()没办法调用,帮我看看为啥

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料