通过制作一些逻辑代码,无法弄清楚如何以所需形式获得01三角形的输出,三角形打印出来但不是根据要求输出。
import java.util.Scanner;
import java.io.*;
public class triangle10{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter a number ");
int num =input.nextInt();
while(num > 0){
for(int j=1;j<=num;j++){
System.out.print(num);
}
System.out.print("\n");
num--;
}
}
}
==================================================================
if the user gives input as 6
the out put should be :
111111
00000
1111
000
11
0
答案 0 :(得分:2)
而不是
for(int j=1;j<=num;j++){
System.out.print(num);
}
我认为您需要打印1
或0
(根据您的示例)。因此,您应该计算num
是偶数还是奇数,并决定是打印0
还是1
。例如
for(int j=1;j<=num;j++){
System.out.print(1 - num%2);
}
因为num%2 = 0
当num是偶数,而1是奇数 - 而且似乎你想要相反。所以1 - num%2
应该能满足您的需求。
在:
Enter a number
6
666666
55555
4444
333
22
1
后:
Enter a number
6
111111
00000
1111
000
11
0
答案 1 :(得分:1)
您正在打印num
。相反,您应该根据num
打印出1或0。
试试这个:
while(num > 0){
for(int j=1;j<=num;j++){
int digit = (num + 1) % 2 ;
System.out.print(digit);
}
System.out.print("\n");
num--;
}
答案 2 :(得分:1)
改变你的代码:
boolean flag = false;
while(num > 0){
flag = !flag;
for(int j=1;j<=num;j++){
if(flag==true)
System.out.print("1");
else
System.out.print("0");
}
System.out.print("\n");
num--;
}
答案 3 :(得分:1)
你只需做一个小改动
这
for(int j=1;j<=num;j++){
System.out.print(num);
}
到
for (int j = 1; j <= num; j++) {
System.out.print((num-1)%2);
}
然后你会得到预期的结果:
例如输入6:
Enter a number
6
111111
00000
1111
000
11
0