蚱蜢编程----leshi

  


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;
}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值