java实现:输入控制可能没那么符合要求
package com.hbut.util;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Mayi {
public static void main(String[] args) {
//输入
Scanner in = new Scanner(System.in);
System.out.println("请输入您想输入的行数:");
int size=in.nextInt();
int arr[]=new int[size];
List<Integer> list = new ArrayList<Integer>();
System.out.println("请您输入:");
for(int x=0;x<size;x++){
arr[x]=in.nextInt();
int tempStep=getMinSteps(arr[x]);
list.add(tempStep);
}
for(int x : list){
System.out.println(x);
}
}
public static int getMinSteps(int x) {
int steps=0;
if(x==0){
steps=0;
}
if (x>0) {
int sum=0;
int temp=1;
while(sum<=x){
steps++;
sum+=temp;
temp++;
}
temp--;
sum=sum-temp;
steps--;
int flag=1;
while(sum!=x){
flag++;
if(flag%2==0)
{
sum-=temp;
steps++;
temp++;
}
if(flag%2!=0){
sum+=temp;
steps++;
temp++;
}
}
}
if(x<0){
x=-x;
int sum=0;
int temp=1;
while(sum<=x){
steps++;
sum+=temp;
temp++;
}
temp--;
sum=sum-temp;
steps--;
int flag=1;
while(sum!=x){
flag++;
if(flag%2==0)
{
sum-=temp;
steps++;
temp++;
}
if(flag%2!=0){
sum+=temp;
steps++;
temp++;
}
}
}
return steps;
}
}