【发布时间】:2021-11-21 18:11:43
【问题描述】:
我编写了一个程序,该程序将数字(整数)作为输入,并使用 for 循环输出 1 和 0 的模式。例如当输入为7时,输出为:
1
1 1
1 0 1
1 0 0 1
1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1 1
源码如下:
#include <stdio.h>
int main()
{
int rows;
int i,j;
scanf("%d", &rows);
for(i=0;i<rows;i++)
{
for(j=0;j<=i;j++)
{
if(i==j)
{
printf("1 \n");
}
else if(j==0)
{
printf("1 ");
}
else if (i==rows-1)
{
printf("1 ");
}
else
{
printf("0 ");
}
}
}
return 0;
}
当我编译 codem 时,创建的令牌数为 107。我需要将令牌数减少到 102 以下(以满足测试要求)。
请问有什么建议吗?
【问题讨论】:
-
“令牌”是什么意思?您有什么是要求?你的任务是什么?也请花一些时间阅读the help pages,阅读SO tour,阅读How to Ask,以及this question checklist。最后请学习如何edit您的问题以改进它们。
-
你的意思是......源代码中的令牌数?如果是这样,我很抱歉,但这是有史以来最愚蠢的任务。
-
@Someprogrammerdude:“令牌”在 C 2018 6.4 中定义 1. 要求少于 102 个令牌。任务是编写一个程序,以整数作为输入,并产生 n 行输出,其中 i 行有 i 个数字,1 ≤ i ≤ n,有空格如图,每行第一个和最后一个数字为1,第n行的每个数字为1,其他所有数字为0。这些都清楚从帖子,所以我不知道你为什么问他们。
-
你的教授是code golf的爱好者吗?
-
删除除第一个和最后一个之外的每个
{和},分别删除12 个标记,然后你就完成了。