PTA刷题记录(1)
团队天梯赛-------(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();
}
}
最新文章
- iOS 应用内的系统复制粘贴菜单显示的语言非中文
- MVC之前的那点事儿系列(2):HttpRuntime详解分析(上)
- How To Call Stored Procedure In Hibernate
- Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作
- Python之路----数据类型
- 每日一水之strcmp用法
- 按比例缩放DIV
- Android&;Java面试题大全—金九银十面试必备
- .NET:bin 与 obj,Debug 与 Release ,区别与选择
- 支付宝当面付功能demo运行解读
- unity Transform.TransformPoint
- Oracle Schema Objects——Index
- 支持xcode6的缓动函数Easing以及使用示例
- GoF设计模式三作者15年后再谈模式
- Project has no project.properties file! Edit the project properties to set one.
- C#只启动一个进程的代码
- C# 真正完美的 汉字转拼音
- SAP ABAP Development Tools in Eclipseのセットアップ
- c#中使用NetCDF存储二维数据的读写操作简单应用
- LinkedHashMap和HashMap的区别
热门文章
- MQTT介绍与使用
- TCP三次握手、四次握手
- LeetCode_155-Min Stack
- Integer类型与int的==比较
- Java序列化总结(最全)
- 腾讯新闻抢金达人活动node同构直出渲染方案的总结
- 程序员成长的四个简单技巧,你 get 了吗?
- 06_基本框架_VMCS_GuestArea
- Mongoose-modified-at 时间自动记录插件介绍
- 该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。 配置文件: ***.vmx。