gpt4 book ai didi

c - 在这个 CS50 问题集中,For 循环背后的数学原理是什么?

转载 作者:行者123 更新时间:2023-11-30 20:30:33 30 4
gpt4 key购买 nike

我目前正在通过 edx 学习 CS50 并做问题集 1,Mario。

目标是使用井号创建打印输出。在一些视频的帮助下,我得到了第一个视频的代码,但我从根本上不理解数学是如何工作的/计算机正在理解什么。

所以我想如果我不学习的话,我以后就会弄残自己。

if n= 5

然后我加1直到它不小于5,这意味着5次是吗?

看看这一行的空间循环 >
for (int j = 0; j < n -1 - i; j++)

如果 n 为 5,则最终结果为 j(0) < 3...

那么为什么第一行有四个空格而不是三个空格?

#include <cs50.h>
#include <stdio.h>
int main(void)
{
int n;
do
{
n = get_int("Pyramid Height: ");
}
while (n < 0 || n >= 24);

//print out this many rows
for (int i = 0; i < n; i++)
{


for (int j = 0; j < n -1 - i; j++)
{
printf(" ");
}
// print out this many columns
for (int j = 0; j < i + 2; j++)
{
printf("#");
}
printf("\n");
}

}

我得到了正确的金字塔,但我不明白间距和打印背后的逻辑

最佳答案

如果 n=5,那么 n-1-j 将等于 5-1-0,即第一次执行循环时为 4,这就是您看到四个空格的原因。如果您希望空格数为 3,则第一个循环条件应为 n-2-j,因为列总数为 5,并且第一行中预期的磅数为 2,因此您应该从 n 中减去 2。

关于c - 在这个 CS50 问题集中,For 循环背后的数学原理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54048859/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com