团队天梯赛-------(2)分值:20

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

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

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

  解题思路:运用分治思想将此沙漏看做上下两部分,合理利用循环对此提进行解答。

  代码如下;

import java.util.*;
public class pta_2 {

public static void pic(int q,String w) {
        final int SIZE = 1000;
        int[] a = new int[SIZE];
        int[] b = new int[SIZE];        
        int i = 0,j = 1,k = 0;
        int temp = 0,l = 0,temp1 = 0,temp2 = 1,temp3 = 0;
        int n = 0,f = 0;
        for(i = 0;i<SIZE; i++) {    
            a[i] = j;
            j+=2;
        }
        b[0] = 1;
        for(i = 1;i<SIZE; i++) {
            b[i] = b[i-1] + 2 * a[i];
        }
        for(i = 0; i < SIZE;i++) {
            if(q > b[i] && q < b[i+1]) {
                temp2 = i;
                break;
            }
            else if(q == b[i]) {
                temp2 = i;
                break;
            }
        }
        temp = a[temp2];
        temp1 = temp;
        for(i = 0; i < temp; i++) {
            if(i < temp / 2){
                for(k = 0; k < (temp - temp1) / 2;k++) {
                    System.out.printf("%1s"," ");
                }
                for(l = 0; l < temp1;l++) {
                    System.out.print(w);
                }
                temp1-=2;
                System.out.println();
            }
            else{
                    for(f = 0; f < ((temp - temp1) / 2);f++) {
                        System.out.printf("%1s"," ");
                    }
                    for(n = 0;n < temp1;n++) {
                        System.out.print(w);
                    }
                    temp1+=2;
                    System.out.println();        
                }
        
        }
        System.out.print(q - b[temp2]);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    
        Scanner input = new Scanner(System.in);
        
        int count = input.nextInt();
        String fuhao = input.next();
        pic(count,fuhao);
        input.close();
    }

}

PTA刷题记录(1)的更多相关文章

  1. PTA刷题记录

    考虑到PAT甲级考试和开学后的XCPC比赛,决定寒假把PAT (Advanced Level) Practice刷完,进度条会在这篇博客下更新.由于主要以记录为主,大体上不会像单篇题解那么详细,但是对 ...

  2. PTA刷题记录(3)

    团队天梯赛-------(3)分值:15 给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​ ...

  3. PTA刷题笔记

    PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...

  4. PE刷题记录

    PE刷题记录 PE60 / 20%dif 这道题比较坑爹. 所有可以相连的素数可以构成一张图,建出这张图,在其中找它的大小为5的团.注意上界的估算,大概在1W以内.1W内有1229个素数,处理出这些素 ...

  5. leetcode刷题记录--js

    leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

  6. Leetcode刷题记录(python3)

    Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

  7. 刷题记录:[HarekazeCTF2019]encode_and_encode

    目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

  8. 刷题记录:[De1CTF 2019]Giftbox && Comment

    目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

  9. 刷题记录:[强网杯 2019]Upload

    目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

随机推荐

  1. Flask框架整个流程源码解读

    Flask框架整个流程源码解读 一.总的流程 运行Flask其本质是运行Flask对象中的__call__,而__call__本质调用wsgi_app的方法 wsgi_app方法 def wsgi_a ...

  2. Windows系统调用中API的3环部分(依据分析重写ReadProcessMemory函数)

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中API的3环部分 一.R3环API分析的重 ...

  3. Redis未授权访问写Webshell和公私钥认证获取root权限

    0x01 什么是Redis未授权访问漏洞 Redis 默认情况下,会绑定在 0.0.0.0:,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服 ...

  4. Redis Getshell总结

    Redis默认端口是6379,可以通过zoomeye或者shodan来查找开放6379的端口,能收到很多对外开放6379端口的ip,而且绝大部门是未授权访问的,因为默认redis是未授权访问.但是还有 ...

  5. JavaScript中For循环以及For循环嵌套实例

    JavaScript中For循环实例 1.打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身. 例如:153是一个 ...

  6. vue css 深度选择器

    在我们想穿透的选择器前边添加 >>> 或者 /deep/ 或者 ::v-deep. 官方地址:https://vue-loader.vuejs.org/guide/scoped-cs ...

  7. php能在手机上运行吗

    php能在手机上运行吗? php能在手机上运行.但是需要你的手机具有PHP运行环境. 比如一款安卓手机上面的php运行环境软件:anmpp. ANMPP是Android NGINX MYSQL PGS ...

  8. ESP8266开发之旅 应用篇① 局域网应用 ——炫酷RGB彩灯

    1.前言     这一篇,博主将教大家怎么去实现一个WiFi RGB彩灯.     先来一个博主已经实现功能的图片,如下:     当然,博主也拍了运行视频,请点击 传输门. 1.1 知识储备     ...

  9. “Triplet network”三元组网络阅读笔记

    记录<DEEP METRIC LEARNING USING TRIPLET NETWORK>阅读笔记 文章总体内容: 作者在前人提出的多个特征提取方法的基础上提出Triplet netwo ...

  10. WebStorm 使用过程中出现的一些问题以及解决方案

    标签: WebStorm 配置 描述: 有关 WebStorm 使用过程中出现的一些问题以及其解决方案的汇总 "unresolved function or method" 问题描 ...