Java 编写程序实现给一个不多于5位的正整数,求它是几位数,并且逆序打印出各位数字。自己实在编不 30
Java编写程序实现给一个不多于5位的正整数,求它是几位数,并且逆序打印出各位数字。自己实在编不出来,不学这个的…完整的能编译的!...
Java 编写程序实现给一个不多于5位的正整数,求它是几位数,并且逆序打印出各位数字。自己实在编不出来,不学这个的…完整的能编译的!
展开
4个回答
展开全部
public static void convert(int num) {
if (num < 0) {
System.out.println("输入一个正整数!");
return;
}
// 求位数
int step = 1;
int result;
int temp = 10;
while (true) {
result = num / temp;
if (result > 0) {
temp *= 10;
step++;
} else {
System.out.println("位数:" + step);
break;
}
}
// 反转
String numStr = String.valueOf(num);
char[] newNum = new char[numStr.length()];
for (int i = 0, j = numStr.length(); i < j; i++) {
newNum[j - i - 1] = numStr.charAt(i);
}
System.out.println("反转后:" + String.valueOf(newNum));
}
你试试可以不,没想到好的,这个方法感觉有点麻烦
展开全部
纯逻辑判断 没用任何循环
public static void main(String[] args){
int a1=0;
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个5位数以内的整数");
a1=scan.nextInt();
if(a1>=0&&a1<=99999) //用来判断输入的数据是否符合规则
{
if(a1>=0&&a1<=9) //以下为判断位数
{System.out.println("该数是个位数");}
else
if(a1>=10&&a1<=99)
{System.out.println("该数是二位数");}
else
if(a1>=100&&a1<=999)
{System.out.println("该数是三位数");}
else
if(a1>=1000&&a1<=9999)
{System.out.println("该数是四位数");}
else
if(a1>=10000&&a1<=99999)
{System.out.println("该数是五位数");}
int b1,b2,b3,b4,b5; //以下代码为逆序输出
b1=a1%10;
b2=a1/10%10;
b3=a1/100%10;
b4=a1/1000%10;
b5=a1/10000%10;
if(b2==0&&b3==0&&b4==0&&b5==0)
{System.out.println("逆序输出为:"+b1);}
else
if(b3==0&&b4==0&&b5==0)
{System.out.println("逆序输出为:"+b1+b2);}
else
if(b4==0&&b5==0)
{System.out.println("逆序输出为:"+b1+b2+b3);}
else
if(b5==0)
{System.out.println("逆序输出为:"+b1+b2+b3+b4);}
else
{System.out.println("逆序输出为:"+b1+b2+b3+b4+b5);}
}
else
System.out.println("您输入的数据有误,请重新输入");
}
public static void main(String[] args){
int a1=0;
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个5位数以内的整数");
a1=scan.nextInt();
if(a1>=0&&a1<=99999) //用来判断输入的数据是否符合规则
{
if(a1>=0&&a1<=9) //以下为判断位数
{System.out.println("该数是个位数");}
else
if(a1>=10&&a1<=99)
{System.out.println("该数是二位数");}
else
if(a1>=100&&a1<=999)
{System.out.println("该数是三位数");}
else
if(a1>=1000&&a1<=9999)
{System.out.println("该数是四位数");}
else
if(a1>=10000&&a1<=99999)
{System.out.println("该数是五位数");}
int b1,b2,b3,b4,b5; //以下代码为逆序输出
b1=a1%10;
b2=a1/10%10;
b3=a1/100%10;
b4=a1/1000%10;
b5=a1/10000%10;
if(b2==0&&b3==0&&b4==0&&b5==0)
{System.out.println("逆序输出为:"+b1);}
else
if(b3==0&&b4==0&&b5==0)
{System.out.println("逆序输出为:"+b1+b2);}
else
if(b4==0&&b5==0)
{System.out.println("逆序输出为:"+b1+b2+b3);}
else
if(b5==0)
{System.out.println("逆序输出为:"+b1+b2+b3+b4);}
else
{System.out.println("逆序输出为:"+b1+b2+b3+b4+b5);}
}
else
System.out.println("您输入的数据有误,请重新输入");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.Scanner;
public class D {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个整数:");
int a = scanner.nextInt();
int weishu = 1;
while(a>10){
a /= 10;
weishu++;
}
System.out.print("这是"+weishu+"位数");
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Test {
public static void main(String[] args) {
int i = 12345;
System.out.println("length: "
+ Integer.toString(i).length()
+ ", reverse: "
+ org.apache.commons.lang.StringUtils.reverse(Integer
.toString(i)));
}
}
public static void main(String[] args) {
int i = 12345;
System.out.println("length: "
+ Integer.toString(i).length()
+ ", reverse: "
+ org.apache.commons.lang.StringUtils.reverse(Integer
.toString(i)));
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询