首页
学习
活动
专区
圈层
工具
发布

3道编程入门必刷题:从递归规律到图案输出,附避坑题解

比如从dfs(1)开始,第1层是dfs(1),第2层是dfs(3),第3层是dfs(5)… 每层对ans的贡献:第k层的cnt = 2k-1,所以该层for循环会让ans增加2k-1。...当递归n层时,ans是前n个奇数的和——而前n个奇数的和恰好是n²!(比如n=2时,1+3=4=2²,对应示例输入2的输出)。...(空格+星号的数量规律) 题目简化 输入整数n(2≤n≤9),输出“双层金字塔”(比如n=2时输出1个星、3个星、1个星;n=5时输出1、3、5、7、9、7、5、3、1个星)。...思路分析 双层金字塔分为上层(从1个星到n个星,每次+2)和下层(从n-1个星到1个星,每次-2),核心是算对每行的空格数+星号数: 上层第i行(i从1到n): 空格数:n - i(比如n=2,i=1...下层第i行(i从1到n-1): 空格数:i(比如n=2,i=1时空格数1); 星号数:2*(n - i) - 1(i=1→2*(2-1)-1=1个)。

17010

C语言实例:创建各类三角形图案(杨辉三角,弗洛伊德三角形....)

2.金字塔 我们先来看看金字塔的组成 可以看见金字塔由空格和星号组成。再仔细观察,不难发现空格的和星号的排列方式存在着规律。...第一行有1个星号,5个空格;第二行有3个星号,4个空格;第三行有5个星号,3个空格; 以此类推,那么第五行就有(2*5-1)个星号,0个空格。...*所占的大小一致,否则打印出来的金字塔不好看 } //打印星号 for (j = 1; j <= (2*(i+1) - 1); j++) { printf(" *");...} printf("\n"); //换行很重要 } return 0; } 打印出来的效果: 3.杨辉三角 先来看看杨辉三角的特征: 每行的开始和末尾都是1,每个数等于它上方两数之和。...n; j++) { printf("%d ", j); count++; } i = j; //让i=j,否则会得不到想要的结果,反而会得到一个出乎意料的结果 printf

55510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【详解】使用java解决-打印出如下图案(菱形)

    使用Java解决 - 打印出如下图案(菱形)在编程学习的过程中,打印特定图案是一个非常有趣的练习,它不仅可以帮助我们理解循环和条件语句的使用,还能加深对字符串操作的理解。...今天,我们将通过一个具体的例子来探讨如何使用Java语言来实现一个打印菱形图案的小程序。1. 需求分析首先,我们需要明确要打印的菱形的具体样式。...下半部分:从第​​n/2 + 2​​行到最后,每一行的星号数量逐渐减少。对于每一行,我们需要考虑两个方面:前导空格的数量。星号的数量。3....为了确保菱形的对称性,​​n​​应该是奇数。上半部分:外层循环 ​​for (int i = 1; i 行的星号数量,从1开始,每次增加2。...下半部分:外层循环 ​​for (int i = n - 2; i >= 1; i -= 2)​​:控制每一行的星号数量,从​​n-2​​开始,每次减少2。

    13610

    debug和release的区别,打印菱形,水仙花数,喝汽水问题,计算求和

    一、debug和release的区别 二、打印菱形 在 C 语言中打印出菱形图案,图案的大小由用户输入决定。 菱形的上半部分和下半部分是对称的。 中间行是最长的一行,逐渐变小。...每一行的空格和星号数需要根据行数进行动态调整。 思路解析: 上半部分(包括中间行): 以 i 为当前行数,从 1 到中间行(n/2 + 1),空格逐渐减少,星号逐渐增加。...第 1 行打印最多空格,最后一行(中间行)打印最多星号。 下半部分: 下半部分与上半部分对称,从中间行向下,每行的空格逐渐增多,星号逐渐减少。...1的奇数。...这个数字将被用来构造数列的每一项。 n:用户输入的一个整数,表示构造数列的项数(即重复的次数)。 i:循环计数器,用于控制循环的执行次数(即构造多少项)。

    19910

    二、Scala流程控制:分支与循环

    在掌握了Scala的基础语法和数据类型之后,我们接下来将深入学习如何控制程序的执行流程。本节将详细探讨Scala中的分支和循环结构,你将领略到Scala在流程控制方面独特的、富有表现力的设计。...//当i是偶数时,跳出内部的breakable块}println(s"奇数:$i")//这行代码只在i是奇数时执行}}三、综合案例:打印九九乘法表这个经典案例很好地展示了嵌套循环和字符串格式化的应用。...题目二:for循环与to使用for循环打印出从5到1(递减)的所有整数。题目三:for循环与until使用for循环打印出100以内的所有7的倍数(不包含100)。...题目四:循环守卫使用for循环和循环守卫,找出1到50之间所有既能被3整除又能被5整除的数。题目五:嵌套for循环使用嵌套的for循环打印一个4x4的星号*矩阵。...答案五:展开代码语言:TXTAI代码解释for(i循环控制行数,内层循环控制每行打印的星号数量

    13410

    基础知识:if条件、while循环、fo

    1-100 内的所有奇数      使用 while 循环实现输出 1-100 内的所有偶数 x = 1 while x <= 100: if x % 2 == 1: print...9次,从上到下依次是第1层到第9层,第n层需要n个算式,也就是第n层循环n次打印, 也就是从1-n依次与n相乘的算式,不换行打印。...(自定义层数) 思路一:假设有n层金字塔,那么大循环应该循环n次,第i次循环也就是从上到下第i层,每一层都是空格与星号的字符串拼接 每一层有n-i个空格和2i-1个星进行拼接。...#一: n = int(input('请输入打印的金字塔总层数:')) for i in range(1, n+1): print(' '*(n-i)+'*'*(2*i-1)) # 二: n...= int(input('请输入打印的金字塔总层数:')) for i in range(1, n+1): for s in range(1, n-i+1): print('

    75110

    Python基础(八):循环深入讲解

    ​循环深入讲解一、循环简介1、循环的作用 思考:假如我有个教练,有⼀天学车过程中你多次转向没有打灯操作,教练说:“长点记性,这个操作重复练习100遍,提醒自己打方向灯”。这个时候程序员会怎么做?...答:100遍 print('记得转方向要打方向灯') 思考:复制粘贴100次吗? 答:重复执行100次⼀样的代码,程序中循环即可 循环的作用:让代码更高效的重复执行。...六、while循环嵌套应用1、打印星号(正方形)需求 ***** ***** ***** ***** ***** 代码分析:一行输出5个星号,重复打印5行# 重复打印5⾏星星j = 0while j 行输出星星的个数和行号是相等的,每行:重复打印行号数字个星号,将打印⾏星号的命令重复执行5次实现打印5行。...道歉到第三遍的时候,媳妇埋怨这⼀遍说的不真诚,是不是就是要退出循环了?这个退出有两种可能性:更生气,不打算原谅,也不需要道歉了,程序如何书写?只⼀遍不真诚,可以忍受,继续下⼀遍道歉,程序如何书写?

    1.5K132

    打印图形:三角形、圆形和正方形 - Java编程案例

    打印正方形 总结 简介:本文将介绍如何使用Java编程语言打印出不同的图形,包括三角形、圆形和正方形。我们将使用嵌套循环和基本的数学计算来实现这些图形的打印。 1....rows,然后使用两个嵌套的循环来控制每一行的星号输出。...外部循环控制行数,内部循环控制每一行中的星号数量。 2. 打印圆形 接下来,我们将学习如何打印一个圆形。在代码中,我们使用了数学计算来确定每个位置是否应该输出星号。...在代码中,我们使用两个嵌套的循环来控制正方形的行和列。...然后,使用两个嵌套的循环来控制每一行的星号输出,行数和列数都等于边长。 总结 本文介绍了如何使用Java编程语言打印三角形、圆形和正方形图形。

    1.1K10

    Sed 高级功能:我这小脑瓜都快绕晕了

    到 Pattern space 2、 执行命令p,这会打印出当前行 3、 把Pattern space的内容,赋值给Hold space 4、 继续下一行的处理,循环这个过程 一个例子:x 但我想稍微操作一下这两个缓冲区...x;n 表示将偶数行保存在pattern space,那么奇数行就保存在hold space中。.../Manager/{x;p} 命令将在pattern space上执行对Manager关键字的查找。如果符合条件,则再次交换p和h缓冲区,输出奇数行对应的名字。...t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。测试命令。...T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。

    1.1K20

    泰酷啦|在python编译器上打印出各种三角形和菱形

    三角形类型 直角右下角的三角形 印以下图形       审题:  通过计算"*"的个数可以发现每一行依次递增1个"*"  根据"*"个数和空格个数的关系可以设它的行数为i,则每一行有...) 方法二: 分别用两次for循环进行空格和星号的遍历打印 for i in range(10): print(" " * (9- i), end=" ")//根据星号和1空格元素数量之和为10...10次按照图片中的规律打印出星号和空格组成上三角形 print(' '*(10-i)+'*'*(2*i+1)) for i in range(2,11): #代码中循环的起始值为2,是因为在这个倒立的菱形图案中...# 如果从1开始循环,那么最上面一行将不会有空格。 print(' '*i + '*'*(21-i*2)) #通过观察可以发现,空格的数量和星号的数量之和始终为21。...print(' '*(i%10) + '*'*(21-(i%10)*2))#如果i大于10且不等于20,打印一行由空格和星号组成的图形。

    47410

    面试题实战:给一个数 n,使用 Go 打印交替顺序零与奇偶数

    在一个未知长度的序列中,依照“0-奇数-0-偶数”的顺序将数字印出,且一种元素只能由一个执行绪印出,代表各个执行绪之间要依照这个数列的规则沟通。...五个 goroutine 之间,如何交接棒?...自循环 & 外部启动注意事项 以前的文章说过,由于本题解法采用各个 goroutine 彼此循环交棒的方式,因此不能自行启动,需要外界给讯号,所以在包住一整题的 PrintZeroEvenOdd() 执行各个...goroutine 同时以 zeo.streamEvenToZero 的火种 ,让 main() 假装自己是 Even() 交棒给 Zero(),以启动交接棒循环。...由于题目的关系,Even() 或 Odd() 其中一个,都有可能是最后印出字元的 goroutine,若让这两者去收尾,流程上的不确定性比较大。因此,几经考虑后,还是决定让 Zero() 去收尾。

    1.3K10

    Java案例-金字塔

    作业需求是使用循环选择语句输出一个金字塔 说干就干,在宿舍用IDEA捣鼓了好一会(我菜),最终就实现了哈哈哈 下面我们来看看吧~ 先找规律 每层金字塔前都是有相应的空格的,星号与星号之间也空一格...* //最顶层,第六层,星号前相应空了6个空格 * * //第五层,星号前相应空了5个空格 * * * /...print 出来,但是题目要求要用循环和选择语句,而且万一我想要1w层的金字塔呢,那不得累死哈哈哈,所以这种方法不可取 System.out.println(" *"); System.out.println...,问题辣么多,我们得一个个来,先解决第一个星星前空的空格,通过观察我们发现每行第一个星星前空的空格数和当前所在层数是一样的,第6层就空6个,第五层就空5个......这样依次递减直到最底层1层,所以在这我们可以在刚刚我们写的循环里嵌套一个循环来解决这个问题...这里就得提到了我们的print 和println,前者的输出是会跟着上一个输出内容的尾部的,后者的输出是换至下一行再进行输出,说这么多不如上代码是吧哈哈哈 System.out.println("*")

    1.3K10

    Python流程控制语句详细解读 含代码

    简单应用举例: 在命令行让用户输入一个用户名,获取用户输入,并进行判断 如果用户输入的用户名是admin,则显示欢迎管理员光临 如果用户输入的是其他的用户名,则什么也不做 #获取用户输入的用户名 username...以内的所有奇数之和为',sum) 运行结果: ?...是用来在判断或循环语句中占位的 break举例:(当变量为4时 终止整个循环,所以只打印出了1 2 3) # 创建一个5次的循环 i = 0 while i < 5 : i += 1...continue 举例:(当变量为4时跳过当次循环,所以只打印出了1 2 3 5) # 创建一个5次的循环 i = 0 while i < 5 : i += 1 if i == 4 :...打Boss 也就是打白骨精 白骨精的初始生命值是10,攻击力是10 3. 逃跑 若选择逃跑,游戏直接结束 如果选择2,也就是打白骨精,若一次没有打死,则白骨精会反击唐僧!

    1.3K20

    Python要你命3000

    兵器谱 1. if python没有三目运算符,我挺苦恼的,比如把两个整数较大的那个复制给一个变量,有三目运算符的语言会这样写: ? 后来发现Python的if语句可以写成一行完成上述功能: ?...3. map 大多数的for循环可以用map来代替,用法是:map(func,seq),对seq中的每个元素进行操作,具体什么操作在func里定义。 我们以前是这么写for循环的: ?...这里是对2取余,返回结果为True的元素。那么什么情况下结果为True?Python里面不为0,None或者null都是True。所以结果就是,偶数是False,奇数是True,返回所有奇数。...举个简单的例子吧,在一个函数执行前打日志: ? 输出: ? 8. 生成器 yield是Python核心关键字,不懂生成器,基本上就是把Python当加强版的Shell在用。...配合send、next函数,生成器可以实现协程的功能: ? 输出: ? 调用next函数后,代码执行到yield,因为后面没有任何值,所以打印出来的结果是None,此时代码hold住,让出CPU。

    97690
    领券