首页 > 其他分享 >1027_打印沙漏

1027_打印沙漏

时间:2023-07-19 12:22:25浏览次数:34  
标签:1027 沙漏 int 打印 mid while static new out

 java:

 1 import java.io.*;
 2 
 3 public class Main {
 4     static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
 5     static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
 6     public static void main(String[] args) throws IOException {
 7         String[] s=in.readLine().split("\\s");
 8         int n=Integer.parseInt(s[0]);
 9         int l=1,r=23,mid=0;
10         while(l<r){
11             mid=(l+r+1)>>1;
12             if((mid<=1?1:1+2*(mid-1)*(mid+1))<=n) l=mid;
13             else r=mid-1;
14         }
15         int i=r,sum=2*r-1;
16         while(i>0){
17             for(int m=0; m<(sum-(2*i-1))>>1; m++) out.print(' ');
18             for(int j=1; j<=2*i-1; j++) out.print(s[1]);
19             i--;
20             out.println();
21         }
22         
23         i=2;
24         while(i<=r){
25             for(int m=0; m<(sum-(2*i-1))/2; m++) out.print(' ');
26             for(int j=1; j<=2*i-1; j++) out.print(s[1]);
27             i++;
28             out.println();
29         }
30         out.println(n-(r<=1?1:1+2*(r-1)*(r+1)));
31         out.flush();
32     }
33
34 }

 python:

import sys


def total(x):
    return 1 + 2 * (x - 1) * (x + 1)


def item(x):
    return 2 * x - 1


n, s = map(str, sys.stdin.readline().split())
n = int(n)
l, r, mid = 1, 23, 0
while l < r:
    mid = (l + r + 1) // 2
    if total(mid) <= n:
        l = mid
    else:
        r = mid - 1
i, num = r, item(r)
while i > 0:
    print((num - item(i)) // 2 * ' ', end='')
    print(item(i) * s)
    i -= 1
i = 2
while i <= r:
    print((num - item(i)) // 2 * ' ', end='')
    print(item(i) * s)
    i += 1
print(n - total(r))

 

标签:1027,沙漏,int,打印,mid,while,static,new,out
From: https://www.cnblogs.com/Ly-abu/p/17565247.html

相关文章

  • vue-pdf组件打印文字全是空白框
    参考:https://www.yii666.com/blog/34226.htmlgithub地址:https://github.com/FranckFreiburger/vue-pdf/pull/130/commits/253f6186ff0676abf9277786087dda8d95dd8ea7#diff-537fb76c67921bef8ccf535dad221c0c875ae6d1077a6b16f055440d32b5421f ......
  • vue使用hiprint实现打印(vue-plugin-hiprint)
    1、安装插件:npminstallvue-plugin-hiprint或yarnaddvue-plugin-hiprint2、普通使用:<template><divclass="box"><divclass="box-tool"><el-button-group><el-buttontype="primary......
  • print response.text 打印网页返回内容时遇到丢失内容的情况\r
    在学习过程中,遇到一个小说网站:h@t@t@p@s@:@/@/@w@w@w@.@i@b@i@q@u@g@e@s@.@c@o@m@/@1@/@1@7@1@0@/@1@2@9@8@2@6@6@.@h@t@m@l@get后,printtext内容,发现中间小说内容部分没了,而这部分内容正是想要获取的,难道一个小说网站(很普通的网站)反pa也这么厉害(网页源代码中是有的)?于是加cookie......
  • 用Python操控斑马打印机的技术总结
    前言由于之前产品打印的标签为人工输入,可能存在信息错误且不适合大批量操作。所以我进行了前期的研究和总结,完成了任务,并这里做下技术总结,方便后面的人进行开发。技术总结斑马打印机的坑官网:http://www.zebra.gd.cn/现在主流的工业打印机都支持二次开发的,要么有自己的一套语......
  • Python 带颜色字体的打印
    带颜色字体的打印原理不做描述,封装后的函数如下所示#-*-coding:utf-8-*-"""带颜色打印输出;"""defprint_white(s:str):"""白色字体打印;"""print(f"\033[30m{s}\033[0m")defprint_red(s:str):&quo......
  • java怎么打印字符串的地址值
    在Java中,打印一个字符串的地址值可以通过使用System.identityHashCode()方法实现。System.identityHashCode()方法返回指定对象的哈希码值,这个值在对象的生命周期中保持不变。在Java中,对象的地址值就是它的哈希码值。下面是一个使用System.identityHashCode()方法打印字符串地址值......
  • [gym102770L]List of Products
    题意简述我们根据唯一分解定理得到,对于每一个数\(x\)可以表示成\(\sump_i^{e_i}\)的形式,其中\(p_i\)表示第\(i\)大的素数。我们重新定义两个数之间的比较,对于两个数\(x,y\):如果\(x=y\),两个数相等如果\(x,y\)不相等,我们就从小到大枚举素数,知道找到一个下标......
  • python打印各种文本颜色及加粗、背景色、斜体、下划线
    ----------字体颜色------------print("\033[1;30m字体颜色:白色\033[0m")print("\033[1;31m字体颜色:红色\033[0m")print("\033[1;32m字体颜色:深黄色\033[0m")print("\033[1;33m字体颜色:浅黄色\033[0m")print("\033[1;34m字体颜色:蓝色\033[0m&quo......
  • JAVA控制台打印进度条工具类
    有些时候我们需要写批处理任务,但是我们需要监控处理的进度,这个时候我们需要写一个计数器在统计,获取还需要好看一些。工具类代码没有第三方依赖,拷贝了网上其他出处的代码加以修改,因为源代码只能处理100条标准的数据,该进度条,不管你有多少条数据都可以正确显示如下图:使用方式也是......
  • html导出图片和打印
    html导出图片和打印 打印用js自带的print即可,导出图片需要引入http://image.niunan.net/html2canvas.min.js   <scriptsrc="html2canvas.min.js"></script> <scripttype="text/javascript"> functionprintContent(){ varcontent=document......