//第四题:数的分解
//题目描述
//
//把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法?
//
//注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。
public class Four {
public static void main(String[] args) {
int a=2019;
int count=0;
for(int i=1;i<a;i++) {
if((i+"").indexOf("2")!=-1||(i+"").indexOf("4")!=-1)
continue;
for(int j=i+1;j<a;j++) {
if((j+"").indexOf("2")!=-1||(j+"").indexOf("4")!=-1)
continue;
int k=a-i-j;
if(k==j||i==j||i==k)
continue;
if(k>0&&(k+"").indexOf("2")==-1&&(k+"").indexOf("4")==-1)
count++;
}
}
System.out.println(count/3);
}
}
Java String indexOf() 方法
indexOf() 方法有以下四种形式:
-
public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
-
public int indexOf(int ch, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
-
int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
-
int indexOf(String str, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。