面试问题
来源:1-1 方法简介
慕小课108
2021-02-07 17:57:41
老师请问这个题目解题思路是什么呢?
2回答
好帮手慕阿满
2021-02-08
同学你好,1行,3行,5行,7行菱形所用的*号数是1,5,13,25....总结一个规律是: i的平方加上 (i-1)的平方。这里的i是指菱形的变成。
代码可以参考如下:
public class PrintStars {
public static void main(String[] args) {
System.out.println("请输入大于1的任何数");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//i表示边长
//total表示菱形所用星号数
int i = 0, total = 1;
while (total <= n) {
i++;
total = calculate(i);
}
int sqrt = --i;
print(sqrt);
System.out.println("剩余:"+(n-calculate(sqrt)));
}
//打印菱形
private static void print(int sqrt) {
for (int i = 1; i <= sqrt; i++) {
for (int j = 1; j <= sqrt - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = sqrt - 1; i > 0; i--) {
for (int j = 1; j <= sqrt - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
//菱形所用*号的规律 i的平方加上(i-1)的平方
private static int calculate(int i) {
return i * i + (i - 1) * (i - 1);
}
}
祝学习愉快~
好帮手慕阿满
2021-02-07
同学你好,这道题目的重点是求出菱形所用的*号数量,并且这个数量尽可能的大,又不能超过数字N。目标集中在求菱形所用的*号数。可以简单的计算出1行,3行,5行,7行菱形所用的*号数,找出其中的规律。大致思路就是这样,老师这边需要具体研究一下,同学可以自己研究一下。
祝学习愉快~
相似问题