java初学者-向后打印直角三角形
上次我在这里时,我在计算机科学作业中唯一需要帮助的问题是在100行上画一个直角三角形,下面是代码:java初学者-向后打印直角三角形,java,geometry,spacing,Java,Geometry,Spacing,上次我在这里时,我在计算机科学作业中唯一需要帮助的问题是在100行上画一个直角三角形,下面是代码: public class PrintTriangle { public static void main(String[] args) { // Print a right triangle made up of * // starting at 100 and ending with 1 int i = 100; whil
public class PrintTriangle {
public static void main(String[] args) {
// Print a right triangle made up of *
// starting at 100 and ending with 1
int i = 100;
while (i > 0) {
for (int j = 0; j < i; j++)
System.out.print("*");
System.out.println();
i--;
}
}
}
我相信这很简单,但到目前为止,我所尝试的一切都失败了,或者一次只创建了一个空间。如有任何建议或帮助,将不胜感激!提前谢谢你 好的,首先看看这两个问题。你会如何把它们联系起来 因为第二个问题与第一个问题相反,所以您在第一个代码中首先做的是什么,您需要在下一个问题中最后做 因此,您的循环实际上应该在以下代码中结束的地方反向工作
int i = 100;
for (int j = 0; j < i; j++)
System.out.print("*");
此外,在上面的模式中,您需要先打印<代码>空格在实际打印<代码>字符< /C> >,因此,这也是您需要考虑的。
因此,这里您必须实际打印两个不同的字符:-- 少量的
,后跟空格
- 很少有
*
- 让我们看看最大行数是
(在您的情况下为100)max
- 行(
)有(i
)个i
空格(行0有0个空格,行1有1个空格)
- 然后它有(
)个n-i
星(第0行有100个星,第1行有99个星)
循环
分析我所说的,并提出一些代码。试试看 公共类主{
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
for (int j = 0; j < i; j++)
System.out.print(" ");
for (int j = i; j < 100; j++)
System.out.print("*");
System.out.println();
}
}
}
公共静态void main(字符串[]args){
对于(int i=0;i<100;i++){
对于(int j=0;j
我只是想告诉你怎么做。
理解模式
就像上一个问题中的printed*一样,您需要打印空格。然后按相反顺序打印星星
*
**
***
***
**
*
对于这些金字塔(我称之为金字塔),首先要确保你得到了正确的空间
* * * * *
- * * * *
- - * * *
- - - * *
- - - - *
现在您可以看到两种模式,现在您可以对其进行编程。这是psuedocode
FOR I=1 to N
FOR J = 1 to I-1
PRINT " "
ENDFOR
FOR K = 1 to N-I+1
PRINT "*"
ENDFOR
PRINT "\n"
ENDFOR
inti=1;
而(i=<100){
//只要有必要,首先放置空格
//它将是我的100倍
//例如,第一行(i=1)、99个空格(100-i)和一颗星(i)
//对于50.线(i==50)、50个空间(100-i)和50个恒星(i)
对于(int j=0;j<100-i;j++)
系统输出打印(“”);
//然后是星星
对于(int j=0;j
下面的代码可以帮助您找到解决方案
class ReverseTriangle {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
for (int j = 0; j < i; j++)
System.out.print(" ");
for (int j = i; j < 100; j++)
System.out.print("*");
System.out.println();
}
}
}
类反转角度{
公共静态void main(字符串[]args){
对于(int i=0;i<100;i++){
对于(int j=0;j
公共类PrintTriangle{
公共静态void main(字符串[]args){
对于(int i=10;i>0;i--)
{
对于(int j=1;j
公共静态无效打印金字塔(int ln){
对于(int j=ln;j>0;j--){
对于(int i=ln;i>0;i--){
如果(j>=i){
系统输出打印(“*”);
}否则{
}
系统输出打印(“”);
}
System.out.println();
}
}
公共静态无效打印反转锥体(整数项次){
对于(int j=0;j=0;i--){
如果(j>=i){
系统输出打印(“*”);
}否则{
}
系统输出打印(“”);
}
System.out.println();
}
}
公共静态无效打印菱形(整数项次){
对于(int j=0;j=0;i--){
如果(j>=i&&jln&(2*ln)-j>=i){
系统输出打印(“*”);
}
否则{
}
系统输出打印(“”);
}
System.out.println();
}
}
@Hisham。。请不要发布工作代码,除非OP亲自尝试。。这对他毫无帮助。@RohitJain。。为此道歉,我想他只是想code@Hisham.. 没关系。但即使他想要密码,你也不应该给他。现在还可以。记得下一次吗?是的,我不是在寻找实际的代码,只是一些有用的提示:)但非常感谢你们,我现在就明白了。出于某种原因,我很难想象空间是它们自己的角色。脑屁!谢谢你们,不用了。在第一种情况下,不需要管理空间。反转不是这么简单。请修复代码突出显示,并在代码段中添加一些说明。阅读FAQ中的这篇文章:
FOR I=1 to N
FOR J = 1 to I-1
PRINT " "
ENDFOR
FOR K = 1 to N-I+1
PRINT "*"
ENDFOR
PRINT "\n"
ENDFOR
int i = 1;
while (i =< 100) {
// first put spaces as long as it is necessary
// it will be i times less than 100
// for example for the first line (i = 1), 99 space (100-i) and 1 star (i)
// for the 50. line (i == 50), 50 space (100-i) and 50 stars (i)
for(int j = 0; j < 100-i; j++)
System.out.print(" ");
// then the stars
for (int j = 0; j < i; j++)
System.out.print("*");
System.out.println();
i++;
}
class ReverseTriangle {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
for (int j = 0; j < i; j++)
System.out.print(" ");
for (int j = i; j < 100; j++)
System.out.print("*");
System.out.println();
}
}
}
public class PrintTriangle {
public static void main(String[] args) {
for(int i=10;i>0;i--)
{
for (int j = 1; j < i; j++)
System.out.print("*");
System.out.println();
}
}
}
public static void printPyramid(int ln){
for(int j=ln;j>0;j--){
for(int i=ln;i>0;i--) {
if (j >= i) {
System.out.print("*");
} else {
}
System.out.print(" ");
}
System.out.println();
}
}
public static void printReversePyramid(int ln){
for(int j=0;j<ln;j++){
for(int i=ln;i>=0;i--) {
if (j >= i) {
System.out.print("*");
} else {
}
System.out.print(" ");
}
System.out.println();
}
}
public static void printDiamond(int ln){
for(int j=0;j<2*ln+1;j++){
for(int i=ln;i>=0;i--) {
if (j >= i && j < ln+1) {
System.out.print("*");
} else if(j > ln && (2*ln)-j>=i){
System.out.print("*");
}
else {
}
System.out.print(" ");
}
System.out.println();
}
}