7-1 打印沙漏

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印





  • 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:
输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出格式:
首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:
19
输出样例:
****
***



  • 2
    编码

    include<stdio.h>

    int main() {
    int a[105];
    a[1] = 1;
    for(int i = 2; i <= 30; i++)
    a[i] = a[i-1] + 2(2i-1);
    int n, m, c = 0;
    char ch;
    scanf("%d %c", &n, &ch);
    for(int i = 1; i <= 30; i++) {
    if(a[i] == n) {
    m = i;
    break;
    }
    else if(a[i] > n) {
    m = i-1;
    c = n - a[m];
    break;
    }
    }
    for(int i = m; i >= 1; i--) {
    for(int j = m; j > i; j--)
    printf(" ");
    for(int j = 1; j <= 2i-1; j++)
    printf("%c", ch);
    printf("\n");
    }
    for(int i = 2; i <= m; i++) {
    for(int j = m; j > i; j--)
    printf(" ");
    for(int j = 1; j <= 2
    i-1; j++)
    printf("%c", ch);
    printf("\n");
    }
    printf("%d\n", c);
    }
    第一步:编译预处理命令,输入主函数。
    第二步:定义整型函数变量,并赋值。
    第三步:定义字符型函数变量。
    第四步:调用scanf语句接收变量number和ch。
    第五步:输入do-while语句,在其中嵌套if语句判断number>=temp?判断数字number是否可以打印沙漏,再利用if语句判断给定的数字number是否可以打印下一个更大的沙漏,再输入break语句,如果不符合条件,则跳出循环打印沙漏。
    第六步:如果符合条件,则进入下步循环。
    第七步:如果给出的数比下个更大的沙漏图形所需的符号数还要大,则将其的行数变为下个沙漏图形的行数,再进行下次循环,输入else语句。
    第八步:输入数据递加,最后输出

转载于:https://www.cnblogs.com/zou1223/p/10401792.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值