失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 题目描述:输入一个正整数 n (100 =< n <= 200000000) 输出是否为dancing number 及n的位数。

题目描述:输入一个正整数 n (100 =< n <= 200000000) 输出是否为dancing number 及n的位数。

时间:2024-05-23 05:03:48

相关推荐

题目描述:输入一个正整数 n (100 =< n <= 200000000)  输出是否为dancing number 及n的位数。

输入

输入一个正整数 n

输出

输出是否为dancing number,及n的位数(输出格式为:0或1,位数 其中0表示n不是dancing number,1表示n是dancing number),如果100 =< n <= 200000000;否则输出“error input”

提示

1. Dancing Number的定义:

我们称n位整数X = x_{n}x_{n-1}x_{n-2}.....x_{2}x_{1} 是一个dancing number

如果X的第i位数x_{i} 同时大于 x_{i-1}和 x_{i+1} 或者 同时小于 x_{i-1}和 x_{i+1} , 其中 i 属于 {2,3,..., n-2, n-1 } ,

即满足以下两个条件之一:

1) x_{1} < x_{2} 并且 x_{2} > x_{3} 并且 x_{3} < x_{4} 并且 x_{4} > x_{5}......

2) x_{1} > x_{2} 并且 x_{2} < x_{3} 并且 x_{3} > x_{4} 并且 x_{4} < x_{5}.....

2. 要考虑用户输入的不是整数的情形,这时也要输出“error input”,实现方法用Scanner类中的 hasNextInt()方法来阅读,返回false即为错误输入情形。

import java.util.*;public class week3dancingnumber4 {public static void main (String[] args) {int x,flag=0;Scanner reader = new Scanner(System.in);if(reader.hasNextInt()){x = reader.nextInt();if(x>=100&&x<=200000000){Integer num = Integer.valueOf(x);String str = num.toString();int[] a = new int[str.length()];for(int i=0;i<str.length();i++){Character ch = str.charAt(i);a[i] = Integer.parseInt(ch.toString());}for(int i = 1;i<a.length-1;i++){if((a[i]<a[i-1] && a[i]>a[i+1]) || (a[i]>a[i-1] && a[i]<a[i+1]) || a[i] == a[i-1] || a[i] == a[i+1]){flag = 1;}}if(flag == 1){System.out.print("0"+","+a.length);}else{System.out.print("1"+","+a.length);}}else{System.out.print("error input");}}else{System.out.print("error input");}}}

如果觉得《题目描述:输入一个正整数 n (100 =< n <= 200000000) 输出是否为dancing number 及n的位数。》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。