c - C:散列金字塔模式
问题描述
我需要一个打印下面图案的程序。程序必须从用户那里读取行数。
示例 1:
输入: 3
输出:
#
##
####
示例 2:
**输入:** 5
输出
#
##
####
#######
###########
我到目前为止的代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int n;
scanf("%d", &n);
int step = n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j+=step) {
printf("#");
}
step--;
puts("");
}
return 0;
}
解决方案
据我从您的示例中可以看出,模式是:
第 0 行:1 #
第 1 行:2 #(即 1 + 1 或“上一行的 # 号 + 本行号”)
第 2 行:4 #(即 2 + 2 或“上一行的 # 号 + 本行号”)
第 3 行:7 #(即 4 + 3 或“上一行的 # 号 + 本行号”)
因此,您可以在代码中使用“上一行中的# 数+ 本行号”作为模式来查找当前行中所需的# 数。就像是:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int n;
scanf("%d", &n);
int limit = 1; // Limit for line 0
for (int i = 0; i < n; i++) {
limit += i; // Calculate limit for this line
for (int j = 0; j < limit; ++j) {
printf("#");
}
puts("");
}
return 0;
}
n=7 的输出:
#
##
####
#######
###########
################
######################
推荐阅读
- ios - 节点快速会话未在 iPhone IOS 中持续存在
- jpa - EntityManager 在 DAO 中为空,使用 @PersistenceContext 和 transaction-type="JTA"
- emv - 应用程序交换配置文件 (AIP) 是否包含在 CDA 中?
- json - 节点无法读取未定义的属性
- android - Android camera and portrait rotation
- javascript - How can I use iOS Chrome's "Open in" feature on iOS with PDF behind secured website or with a large data URL?
- amazon-web-services - 本地环境中的 AWS Serverless Express
- java - Akka 有限状态机实例
- java - Spring,Hibernate插入英文数据但SQL Server显示中国字符
- android - SharedPreference 是否需要时间来同步数据?