zoukankan      html  css  js  c++  java
  • 打印沙漏

    题目1.打印沙漏

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

    *****
     ***
      *
     ***
    *****
    

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

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

    1.代码#include<stdio.h>
     
    int n;
    char a;
    int l; //记录最长的一行有多少个符号
    int sum=1;
    int rest;
    int space;
    int icon;
    int s;
    int i;
     
    int  main()
    {
     scanf("%d %c",&n,&a);
     if(n<5){
      rest=n-1;
      printf("%c %d",a,rest);
      return 0;
     }
     for(l=3;sum<=n;l+=2){  //测试余数为0的情况,此处sum<=n而不是sum<n
      sum+=2*l;
     }
     l-=4;
     rest=n-sum+l*2+4; //剩余的符号数
     for(icon=l;icon>=1;icon-=2){
      space=(l-icon)/2;
      for(s=space;s>0;s--){
       printf(" ");
      }
      for(i=icon;i>0;i--){
       printf("%c",a);
      }
      printf(" ");
     }
     for(icon=3;icon<=l;icon+=2){
      space=(l-icon)/2;
      for(s=space;s>0;s--){
       printf(" ");
      }
      for(i=icon;i>0;i--){
       printf("%c",a);
      }
      printf(" ");
     }
     printf("%d",rest);
     
    }

    2运行截图

    3.设计思路

  • 相关阅读:
    【前端面试】前端知识点总结_前端大厂车轮战_转自mahmud(小麦)大神
    【网优】浅谈LTE无线网络优化
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
  • 原文地址:https://www.cnblogs.com/xyh9977/p/10405259.html
Copyright © 2011-2022 走看看