我必须编写程序来打印此输出:
1
212
32123
4321234
543212345
我已经成功编码了这部分模式:
1
12
123
1234
12345
但是,我没有达到第二部分。这是我的代码:
for(int i=1; i<=5; i++) {
for(int j=1; j<=i; j++) {
System.out.print(j);
}
System.out.println();
}
答案 0 :(得分:1)
为什么不递归?只因为它很有趣;)
public static void main(String args[]) {
System.out.println(pyramid(5));
}
public static String pyramid(int rank) {
if (rank == 1) {
return "1\n";
}
return pyramid(rank - 1) + mirror(rank) + "\n";
}
public static String mirror(int rank) {
if (rank == 1) {
return "1";
} else {
return rank + mirror(rank - 1) + rank;
}
}
答案 1 :(得分:0)
在当前j
for
循环之前,您需要另一个j
for
循环,该循环从5
倒计时到(但不包括){{1 }}。决定是否打印空格或1
本身,具体取决于j
是否大于j
。
i
答案 2 :(得分:0)
正如有人已经注意到的那样,你可以通过一个双循环来轻松实现这个目标,一个从i倒数,一个倒数:
for(int i=1; i<=5; i++) {
for(int j=i; j>=2; j--) {
System.out.print(j);
}
for(int j=1; j<=i; j++) {
System.out.print(j);
}
System.out.println();
}
如果您不立即打印,也可以在单个for循环中完成相同的操作。例如,你可以用一个构建一个StringBuffer,然后在两边添加数字直到i == j,然后在内部循环之外打印。
for(int i=1; i<=5; i++) {
StringBuffer buffer = new StringBuffer();
buffer.append(1);
for(int j=2; j<=i; j++) {
buffer.insert(0, j);
buffer.append(j);
}
System.out.println(buffer);
}
答案 3 :(得分:0)
package recAaA;
public class testA {
static void rec(int startVal, int endVal)
{
if(startVal==0)startVal=-2;
if(startVal<-endVal) return;
System.out.print(Math.abs(startVal));
rec(startVal-1,endVal);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int imax=5;
for(int i=1;i<imax+1;i++)
{
for(int j=0;j<imax+1-i;j++)
{
System.out.print(" ");
}
rec(i,i);
System.out.println();
}
}
}
输出:
1
212
32123
4321234
543212345
如果你给我startVal和i + 1到endVal,输出变为
12
2123
321234
43212345
5432123456
答案 4 :(得分:0)
这是输出数字的代码;你所要做的就是修正间距。
for (int i = 1; i <= 9; i++) {
BigInteger b =
BigInteger.TEN.pow(2*i-1)
.subtract(BigInteger.ONE)
.divide(BigInteger.valueOf(9))
.multiply(BigInteger.valueOf(i+1))
.subtract(BigInteger.TEN.pow(i)
.subtract(BigInteger.ONE)
.divide(BigInteger.valueOf(9))
.pow(2));
System.out.println(b);
}
也就是说,对于1-9范围内的每个整数,它打印((10 2n-1 -1)/ 9)(n + 1) - ((10 n -1)/ 9) 2 。非常简单。
答案 5 :(得分:0)
/* Basically logic is that in a horizontal line upto the mid ,the number is decrementing and after the mid, the number starts incrementing
*/
public class java {
public static void main(String[] args) throws IOException {
int n;
InputStreamReader io = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(io);
System.out.println("Enter the height in the number of lines vertically");
n = Integer.parseInt(br.readLine());
for (int i = 1; i <= n; i++) {
int k = i;
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print(k);
if (j >= (((2 * i - 1) / 2) + 1))
k++;
else if(j<(2*i-1)/2+1) k--;
}
System.out.println();
}
}
}
我希望这会有所帮助!
答案 6 :(得分:0)
class App extends React.Component{
state = {
audio : new Audio()
}
play = (sound)=>{
const {audio} = this.state;
audio.src = sound;
audio.play();
}
render(){
return (
<div className="App">
<PadInput label="A" sound={A} play={this.play}/>
</div>
);
}
}
const PadInput = ({label, sound, play})=>(
<input type="button" value={label} onClick={()=>play(sound)} />
)
答案 7 :(得分:0)
for(int i=1;i<=100; i++) {
for(int j=100;j>i;j--)
System.out.print(" ");
for(int k=i;k>1;k--)
System.out.print(k+" ");
for(int j=1; j<=i; j++)
System.out.print(j+" ");
System.out.println();
}
答案 8 :(得分:-1)
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.print("Enter no ");
int n=in.nextInt();
for(int i=1;i<=n;i++)
{
int l=n-i;
while(l!=0)
{
System.out.print(" ");
l--;
}
for(int j=i;j>=2;j--)
{
System.out.print(j);
}
for(int k=1;k<=i;k++)
{
System.out.print(k);
}
System.out.println();
}
}
}