牛牛在研究他自己独创的平衡数,平衡数的定义是:将一个数分成左右两部分,分别成为两个新的数。
左右部分必须满足以下两点:
1,左边和右边至少存在一位。
2,左边的数每一位相乘如果等于右边的数每一位相乘,则这个数称为平衡数。
例如:1221这个数,分成12和21的话,1*2=2*1,则称1221为平衡数,再例如:1236这个数,可以分成123和1*2*3=6,所以1236也是平衡数。而1234无论怎样分也不满足平衡数。
输入一个正整数(int范围内)。
如果该数是平衡数,输出 "YES", 否则输出 "NO"。
1221 1234
YES NO
public class Main {
public static void main(String[] args) {
java.util.Scanner in = new java.util.Scanner(System.in);
String str = in.nextLine();
if (str == null || str.length() == 0) {
System.out.println("请输入参数");
return;
}
System.out.println(isBalance(str) ? "YES" : "NO");
}
private static boolean isBalance(String num) {
if (num.length() < 2) {
return false;
}
//检测0,如果一个0,为false;如果多个0,为true
int firstZero = num.indexOf('0');
if (firstZero > -1) {
int lastZero = num.lastIndexOf('0');
if (firstZero == lastZero) {
return false;
} else {
return true;
}
}
//左右两边计算乘积,值小的一方移位
char[] arr = num.toCharArray();
int left = 0, right = arr.length - 1, leftv = arr[left] - 48, rightv = arr[right] - 48;
while (left < right - 1) {
if (leftv <= rightv) {
leftv *= arr[++left] - 48;
} else {
rightv *= arr[--right] - 48;
}
}
return leftv == rightv;
}
}
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n =sc.nextInt();
String str= String.valueOf(n);
String left ="";
String right ="";
boolean flag = false;
for(int i=1;i<str.length();i++){
left=str.substring(0,i);
right=str.substring(i,str.length());
if(check(left,right)){
flag=true;
}
}
if(flag){
System.out.println("YES");
}
else{
System.out.println("NO");
}
}
}
private static boolean check(String left, String right) {
char [] arr1 = left.toCharArray();
char [] arr2 = right.toCharArray();
int sum1=1,sum2=1;
for(int i=0;i<arr1.length;i++){
sum1*=Integer.valueOf(arr1[i]+"".toString());
}
for(int i=0;i<arr2.length;i++){
sum2*=Integer.valueOf(arr2[i]+"".toString());
}
// System.out.println(sum1);
// System.out.println(sum2);
if(sum1==sum2){
return true;
}
else{
return false;
}
}
}
import java.util.Scanner;
import java.lang.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int number;
int r1;
int r2;
while(in.hasNext())
{
boolean PHS = false;
number = in.nextInt();
String str = String.valueOf(number);
if (number>=10)
{
for (int i = 0; i<str.length()-1; i++)
{
r1 = 1;
r2 = 1;
for (int j = 0; j<=i;j++)
{
String perstr1 = str.substring(j,j+1);
int num1 = Integer.parseInt(perstr1);
r1 = r1 * num1;
}
for (int k = i+1;k<str.length();k++)
{
String perstr2 = str.substring(k,k+1);
int num2 = Integer.parseInt(perstr2);
r2 = r2 * num2;
}
if (r1 == r2)
{
PHS = true;
break;
}
}
if (PHS)
{
System.out.println("YES");
}
else
{
System.out.println("NO");
}
}
else
{
System.out.println("NO");
}
}
}
}