黑马程序员技术交流社区
标题:
键盘录入任意菱形的代码,求心形代码
[打印本页]
作者:
naceyeve
时间:
2015-10-31 00:02
标题:
键盘录入任意菱形的代码,求心形代码
谁有空心的菱形代码或是心形代码,分享下,这个代码没用双for,用的是if,拿出来和大家分享下
import java.util.Scanner;
class text9 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("输入一个数,得到该数的菱形");
int n = sc.nextInt();
printStar(n);
}
//打印星星
private static void printStar(int n){
//打印上半部分
for(int i=0;i<n;i++){
for(int j=0;j<2*n;j++){
if(j<n-i)
System.out.print(" ");
if(j>=n-i && j<=n+i)
System.out.print("*");
}
System.out.println();
}
//打印下半部分
for(int i=1;i<n;i++){
System.out.print(" ");
for(int j=0;j<2*n-i;j++){
if(j<i)
System.out.print(" ");
if(j>=i && j<2*n-i-1)
System.out.print("*");
}
System.out.println();
}
}
}
作者:
IDEA
时间:
2015-10-31 00:26
点赞一下,
作者:
momoxixi
时间:
2015-10-31 00:33
本帖最后由 momoxixi 于 2015-10-31 00:35 编辑
public class Heart {
int HighLevel(int wide) {
int i = 0, j = 0, k = 0, t = 0, m = 0, n = 0, count = 1;// i控制循环内高度,j控制每行前面空格,k控制输出的*数
// t控制高层星号中间空格,m记录高层最底行的星数,以下逐行增4
// n记录顶行空个数,以下逐行减4;count记录高层高度,与high无关
m = (wide - 4) / 2;
do {
count++;
m -= 4;
} while (m > 4);
if ((wide - 4) % 2 == 0) // 区别对待奇偶宽度,奇数中间最小空1个,偶数最小空两个
{
n = 2 + 4 * (count - 1);
m--;
} else
n = 1 + 4 * (count - 1);
for (i = 0; i < count; i++) {
for (j = (count - i) * 2; j > 0; j--)
System.out.print(" ");
for (k = 0; k < m; k++)
System.out.print("*");
for (t = 0; t < n; t++)
System.out.print(" ");
for (k = 0; k < m; k++)
System.out.print("*");
m += 4;
n -= 4;
System.out.print("\n");
}
return 0;
}
int LowLevel(int wide) {
int i = 0, j = 0, k = 0;// i控制输出行,j控制输出每行前的空格,k控制输出*
int high = 0, tmp = wide;
do// 计算所需高度
{
high++;
tmp -= 4;
} while (tmp > 4);
high += 1;
for (i = 0; i < high; i++) {
for (j = 0; j < 2 * i; j++)
System.out.print(" ");
for (k = wide - 4 * i; k > 0; k--)
System.out.print("*");
System.out.print("\n");
}
return 0;
}
public static void main(String[] args) {
int wide = 30;
Heart heart = new Heart();
heart.HighLevel(wide);
heart.LowLevel(wide);
}
}
复制代码
作者:
naceyeve
时间:
2015-11-10 18:10
momoxixi 发表于 2015-10-31 00:33
大神!!!厉害!!!
作者:
TommyFen
时间:
2015-11-10 22:06
佩服佩服~~~
作者:
Sayman
时间:
2015-11-10 22:19
import java.util.Scanner;
class pri2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
for (int i = 0; i < x; i++) {
for (int j = 1; j < x * 2; j++) {
if (j == x - i || j == x + i) {
System.out.print("*");
}else
System.out.print(" ");
}
System.out.println(" ");
}
for (int i = 1; i <= x -1; i++) {
for (int j = 0; j < 2 * (x -1); j++) {
if (j == i || j == ((x -1) * 2 - i)) {
System.out.print("*");
}else
System.out.print(" ");
}
System.out.println(" ");
}
}
}
复制代码
键盘录入 任意长度的空心菱形
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2